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

被折叠的 条评论
为什么被折叠?



