您的位置:首页 > 其它

客户端在连接服务器报10061错误的原因

2016-01-01 11:12 555 查看
      为了满足某银行客户端数量过多,估计有700个左右。 在分发速度和响应速度的要求下,需要修改流控任务分发。于是,完成端口终于登场了。 从CodeProject中下载了一个封装了完成端口的类,IOCPS,http://www.codeproject.com/KB/IP/iocp_server_client.aspx。结合流控任务分发上的应用,修改修改,弄了一个多星期,终于搞定,能够获取批次,对客户端分发批次任务,分发速度和响应速度都有相应的提高,心里那个爽啊。但有一个问题,在程序运行一段时间后,客户端经常连接不上。 总是报10061的错误,由于目标计算机积极拒绝,无法连接。
如图:



,一开始总以为是侦听socket的缓冲区满了,阻塞了客户端的访问。折腾了几天,问题木有解决。最终才发现是由于程序中同步出现问题,导致侦听线程与其他线程陷入死锁状态,所以侦听线程无法执行Accept()函数,客户端就会报10061错误。表面上是服务器忙,其实是程序进入死锁状态了。
       ps: 服务器编程,同步很重要,但要非常小心,以免程序中各线程互相等待,从而进入死锁状态,引发其他问题出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: