最近编写服务器程序,游戏服经常与登录服莫名其妙的断开,错误码10038(无效的套接字),而这个套接字是在程序启动的时候创建并连接的,并没有关闭掉。
网上搜索看了这篇文章,顿时明白。http://hi.baidu.com/gensoft/item/716dc9cd59dd817aced4f81b
原因是windows套接字不能被关闭多次。而游戏服在客户端连接的套接字上关闭多次,导致与登录服务器连接套接字无效。
安全的关闭套接字的做法:
//防止socket被关闭多次
if(_socket!=INVALID_SOCKET)
{
closesocket(_socket);
_socket = INVALID_SOCKET;
}
以备后忘。

本文探讨了游戏服务器与登录服务器间连接异常断开的问题,揭示了Windows套接字被重复关闭导致的错误码10038现象。通过正确的套接字关闭流程,确保了连接稳定。

3787

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



