问题: 一个进程内,使用udp协议的客户端(无绑定端),在发送数据后,使用select模型监听该udp协议套接字,当该进程继续发送数据时,该进程居然能正常监控到套接字的状态变化,但是接收到数据函数返回值为-1。
疑问: 该进程内该套接字没有绑定端口,使用该套接字发送数据后,再使用select模型监听该套接字,在发送数据后该套接字居然能响应但是没有接收到内容,通过调用WSAGetLastError函数返回10054,select模型不应该是能正常接收数据时才响应吗。可能是我理解错了,可能是套接字有状态变化就能正常返回,不管是否能正常接收数据,所以,接收数据后要判断接收的发现,是否接收正常,然后再去分析接收的内容。
解决措施: 若对端(绑定端)使用客户端(未绑定端)发送消息时使用的端口进行绑定,则不会出现上边的问题,并行KJ没出现上述问题,就是因为主K端绑定了udp通信使用的端口,节点机与主K udp通信时未绑定端口,使用select检测创建的udp协议套接字没有出现上述问题。
2021-03-18 网络通信select模型遇到的问题
最新推荐文章于 2023-07-19 14:47:22 发布