当前位置: 代码迷 >> VC/MFC >> socket 服务器端程序recv()会有一定概率出现10038异常
  详细解决方案

socket 服务器端程序recv()会有一定概率出现10038异常

热度:128   发布时间:2016-05-02 03:34:11.0
socket 服务器端程序recv()会有一定概率出现10038错误
我写了一个socket 服务器程序,其中监听线程常驻,接收线程在客户端发起链接后创建,客户端关闭后也会跟着关闭。对方的客户端程序每次发送一条信息后就关闭链接,下次发送时重新建立连接。
现在的问题是我服务器端程序接收到客户端程序会有约30%概率返回10038。
我们的程序都是顺序执行的,每次链接都是新建的,我个人觉得不应该出现无效的socket 套接字。

我还有另一个常驻的服务器端程序,定时1s向外发送256字节信息。当这个线程工作时才会出这个bug。
请问会是这两个线程冲突造成的10038错误吗?

麻烦大家帮我分析一下。
------解决思路----------------------
先看看对饮的socket对象是否正确,然后你释放的时候有没有正确关闭释放socket
------解决思路----------------------
某个端口的套接字关闭后,似乎有一段时间里,还不能用这个端口创建套接字,必须使用别的端口,在许多场合下遇到这个问题,原因不明
------解决思路----------------------
服务端监听是常态,收到连接的Socket后,服务端可生成一个新的线程与该Socket建立连接,所有的连接管理应该在线程内部完成,与是否重建连接无关系,Socket释放后线程也就结束了。
------解决思路----------------------
《Windows核心编程》
  相关解决方案