C语言 Сan I在通过套接字С接收到文件后立即退出

pdsfdshx  于 2023-01-16  发布在  其他
关注(0)|答案(1)|浏览(112)

我正在尝试从套接字读取文件。我使用带有超时的select命令在阅读后退出。

select(maxfdp1, &rset, NULL, NULL, &timeout);

但是如果我知道马上要发送的文件的大小,我就可以在得到正确的字节数后立即退出。
我可以在传输之前获得完整的文件大小吗?
或者我应该使用什么来在传输完成后立即退出?

2lpgd968

2lpgd9681#

由于TCP是一个面向流的协议,它没有应用层消息大小的概念。如果您在TCP之上设置自己的应用层协议,则可以让发送方首先传输以下数据的大小,例如按网络顺序传输四个字节(big Endian)。
一旦收到所有想要的数据,就可以在套接字上调用close

相关问题