繁体   English   中英

套接字发送数据,但是recv程序不能正常工作

[英]Socket send data but the recv program dont work well

我创建了2个程序,一个要发送,另一个要接收数据。 所以,

接收数据的部分是:

while ((recvMsgSize = sock->recv(echoBuffer, RCVBUFSIZE))>0) {
   write(fileno(stdout), echoBuffer, recvMsgSize);
}

如果我使用它来录制大文件数据,它会很好地工作,而少量数据则无法工作。 我知道问题在于recv部分,因为如果我使用netcat来接收数据,它会很好地工作,它将接收整个数据。 还有其他接收数据的方式吗?

谢谢

我猜想您的套接字正在阻塞,而recv正在等待RCVBUFSIZE字节发送。 您应该发送将要首先发送的文件的大小,然后计算收到的数据量,并且仅在丢失的内容少于RCVBUFSIZE字节时才请求剩余的部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM