C++ 套接字发送数据,但recv程序无法正常工作
我创建了两个程序,一个用来发送数据,另一个用来接收数据。 所以 接收数据的部分是:C++ 套接字发送数据,但recv程序无法正常工作,c++,linux,sockets,netcat,C++,Linux,Sockets,Netcat,我创建了两个程序,一个用来发送数据,另一个用来接收数据。 所以 接收数据的部分是: while ((recvMsgSize = sock->recv(echoBuffer, RCVBUFSIZE))>0) { write(fileno(stdout), echoBuffer, recvMsgSize); } 如果我用它来接收一个大文件数据,它工作得很好,但如果数据量很小,它就不工作了。 我知道问题出在recv部分,因为如果我使用netcat来recv数据,它工作得很好,它会r
while ((recvMsgSize = sock->recv(echoBuffer, RCVBUFSIZE))>0) {
write(fileno(stdout), echoBuffer, recvMsgSize);
}
如果我用它来接收一个大文件数据,它工作得很好,但如果数据量很小,它就不工作了。
我知道问题出在recv部分,因为如果我使用netcat来recv数据,它工作得很好,它会recv整个数据。
是否有其他方式接收数据
谢谢我猜您的套接字正在阻塞,recv正在等待发送RCVBUFSIZE字节。您应该先发送要发送的文件的大小,然后计算您已接收的数据量,并仅在缺少的数据小于RCVBUFSIZE字节时请求剩余部分。什么是sock?它是您创建的套接字的抽象吗?它怎么会失败?