2013-10-27 56 views
0

我现在正在使用C/C++进行并发套接字编程。我只是让服务器接收来自客户端的请求并将响应数据包发送给客户端。我使用一个线程来接收来自客户端的请求。当服务器收到新请求时,将创建一个新线程,以便向客户端发送一些数据包。但是,我的客户端的recvfrom总是返回winsock错误10054,同时我的服务器正在向特定客户端发送数据包。UDP并发客户端recvfrom错误

+0

你得到一个“ICMP端口不可达”响应,你应该可以处理的。 – Hasturkun

回答

0

根据this forum thread,这是一个无害的错误,您可以忽略它在客户端。

+0

如何忽略它?>我仍然得到recvfrom返回值-1。即使我得到这个错误,它是否是recvfrom中的缓冲区仍然收到了消息。 – user2637966

1

此错误消息表示udp端口已关闭,并且您正在关闭的端口上接收数据包。例如,在voip电话中,客户端发送origport = 12295,声明请发送数据包并关闭工作端口32000 08:43:32.377 cip = 172.x.23.225 sip = 10.x.20.2 cport = 32000 sport = 32128 origport = 12295

但是,如果服务器不明白这一点,你仍然收到数据包上32000从服务器,然后客户端将显示此错误消息