在某些情况下,不读取整个套接字输入流

时间:2016-02-17 10:37:17

标签: java sockets tcp ip

我有一个java应用程序,它根据tcp长度协议进行通信。因此,如果标头包含无效长度值,则它拒绝读取更多输入流并将错误消息写入套接字的输出流并关闭套接字。这是网络透视中的问题还是我应该使用垃圾输入流直到文件末尾?

1 个答案:

答案 0 :(得分:0)

在这种情况下,远程主机将获得SocketException或类似。这可能在它读取您发送到TCP流的错误消息之前发生;写入套接字可能无法完成事件。通常,无法知道删除对等体是否已完成从其套接字读取,除非a)它发送您可能识别为读取确认的内容或b)您读取整个输入消息直到EOF然后发送响应并正常关闭连接。 / p>

这不会造成任何垃圾问题,操作系统会释放所有不需要的缓冲区。