[英]Will socket.close() interrupt data transmission?
OutputStream out = socket.getOutputStream();
out.write(someData);
socket.close();
Will socket.close()
cause the peer socket not to receive someData
? socket.close()
会导致对等套接字不接收someData
吗?
Will
socket.close()
cause the peer socket not to receive someData?socket.close()
会导致对等套接字不接收someData吗?
Definitely not, in this case . 在这种情况下 ,绝对不是。 It will enqueue a FIN, which can only be received by the peer as end of stream after receiving all pending data.
它将排队一个FIN,该FIN只能在接收所有未决数据后作为流的末尾被对等方接收。
However as a general rule you should call out.close()
, to ensure any data buffered in out
gets flushed, in case out
was a buffered stream, rather than socket.close()
, which doesn't care about whatever buffered streams may have been wrapped around its output stream. 但是作为一般规则,您应该调用
out.close()
,以确保out
in的所有数据都被刷新,以防out
是缓冲流,而不是socket.close()
,后者不关心任何缓冲流可能已包装在其输出流中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.