2015-06-14 55 views
0

如果應用程序將字節寫入端口,並且沒有人從該端口讀取數據,那麼數據會發生什麼變化? 假設一個應用程序每分鐘向端口寫入一條char消息(消息有結束標記),並且應該從該端口讀取的應用程序關閉,消息是否會丟失?將字節寫入stram - 數據發生了什麼?

+2

丟包 - https://en.wikipedia.org/wiki/Packet_loss –

+0

Java或任何其他編程語言與此問題完全無關。 –

回答

2

如果端口關閉(通過TCP/IP或UDP/IP網絡),數據包將被丟棄,數據將丟失。如果它是開放的,但接收應用程序永遠不會讀取它,它將位於緩衝區中,直到應用程序終止,此時它將丟失。對於本地IPC,比如一個管道,數據只是在讀取緩衝區中放置,直到管道的讀取結束關閉,此時它將丟失。

TL; DR:丟失了。

+0

此外,在TCP/IP網絡中,如果端口關閉,發送方可能會收到一個RST包(儘管這不一定會發生 - 接收方可以忽略未經請求的流量,或者某些防火牆可能會阻止它,等等。) –