Linux C客户端接收0字节,而服务器不发送任何内容



我有一个客户端和服务器应用程序,我观察到了奇怪的行为:

客户端发送数据并在80微秒后执行返回0的recvfrom,服务器在客户端执行recvfrom后接收数据并发送响应。这只是从服务器发送的一次。

问题:这是客户端的代码有问题还是代码正常?从revcfrom的手册页面中,我可以看到recvfrom在peer关闭连接时返回0-但我没有看到服务器端有任何关闭的连接-我对服务器和客户端进行了测试:

客户端:

16:06:08.206571 sendto(16, "initializern", 12, MSG_NOSIGNAL, NULL, 0) = 12
16:06:08.206654 recvfrom(16, "", 256, 0, NULL, NULL) = 0

服务器端:

16:06:08.209998 recvfrom(11, "initializern", 256, 0, NULL, NULL) = 12
16:06:08.215474 sendto(11, "1n", 2, MSG_NOSIGNAL, NULL, 0) = 2

我有点不知所措。。。

提前感谢您的任何建议

recvfrom()/recv()无论是服务器还是客户端都是一样的,所以0(关闭连接)的意思是一样的。

相关内容

最新更新