昨天在做测试的时候服务器卡住了,检查发现是服务器调用send函数发消息时没有返回,造成消息处理这个线程卡在那里不动了。
根据网上资料,我也大概判断出来,要么是发送端的缓存不够了,要么是接收端的缓存不够了。
而我的套接字没有设置成非阻塞模式,所以就卡在发送这里没有返回。
解决方法是把套接字改为非阻塞模式
这样子发送不成功send也能立即返回,服务器就不会卡在那里了。
这时候如果发送不成功的话send返回值error:10035。
继而检查了测试用的客户端,才恍然大悟,原来我的客户端根本没做接收。
发的出才怪了。