簡體   English   中英

如何在Java中創建損壞的管道IO異常

[英]How to create broken pipe IO exception in java

我正在嘗試了解管道異常的情況,並認為生成一個管道異常是一個好主意,但不幸的是我未能做到。

服務器-Netcat客戶端-Java套接字

Server ------------- Client
          <--------- SYN
  SYN,ACK --------->
          <--------- ACK
  FIN,ACK --------->        (when server dies on kill -9)
          <--------- ACK
          <--------- writes some bytes          
  RST ------------->        (no exception thrown at java side) 
  1. 寫入已死亡的服務器進程時,為什么不拋出中斷的管道?

管道是數據流,通常是從文件或網絡套接字讀取數據。 當該管道的另一端突然關閉時,就會發生管道破裂的情況。 對於flie,可能是文件掛載在已斷開連接的光盤或遠程網絡上。 對於網絡套接字,可能是網絡拔出或另一端的進程崩潰。

嘗試讀取一個大文件,然后在客戶端讀取文件時,通過拔下網絡電纜或禁用網絡適配器將其從網絡中刪除。

要么

只需關閉服務器即可。

確保客戶端正在從服務器讀取大字節流,以便您可以手動執行上述任一步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM