如果tcp / ip套接字上的read()收到文件结尾,eof是否会导致套接字终止?
在tcp / ip套接字上执行read()时,如果流的大小未知,读者是否会收到EOF,以便他可以继续阅读?
答案 0 :(得分:2)
两者都不。 TCP协议中没有EOF这样的东西。
如果你想在你的应用程序协议中定义一个(你应该这样做),但read
在看到它时不会停止或关闭套接字。
TCP纯粹是流基础。提取数据的“数据包”取决于应用程序。
如果您只需要通过TCP连接发送一条消息,则可以在发送完成后关闭发送方的套接字。然后,read
接收方只会读取与发送内容一样多的内容,并在不再需要阅读时返回0
。但在这种情况下,你必须重新打开一个新的连接来发送下一条消息。