客户端在连接服务器报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: 服务器编程,同步很重要,但要非常小心,以免程序中各线程互相等待,从而进入死锁状态,引发其他问题出来。
如图:
,一开始总以为是侦听socket的缓冲区满了,阻塞了客户端的访问。折腾了几天,问题木有解决。最终才发现是由于程序中同步出现问题,导致侦听线程与其他线程陷入死锁状态,所以侦听线程无法执行Accept()函数,客户端就会报10061错误。表面上是服务器忙,其实是程序进入死锁状态了。
ps: 服务器编程,同步很重要,但要非常小心,以免程序中各线程互相等待,从而进入死锁状态,引发其他问题出来。
相关文章推荐
- codevs 1519 过路费
- oozie ErrorCode 含义
- watchman--no-pretty get-sockname returned with exit code 1 ERROR
- 20160101罗振宇的跨年演讲
- B. 沙漠之旅(分组背包)
- HDFS 和 YARN 的 HA 故障切换
- CCA Spark and Hadoop 开发者认证技能点【2016只为hadoop达到巅峰】
- Pashmak and Garden
- mysql基础学习笔记
- HDFS 用户手册
- poj Kaka's Matrix Travels
- halcon基础之Blob Analysis
- 详解 WordCount 运行后历史日志记录
- leetcode第8题——*String to Integer (atoi)
- Eclipse搭建android环境及Genymotion模拟器安装问题解决方法
- hadoop2.x 常用端口及定义方法
- Java在制作jar包时引用第三方jar包的方法
- activiti数据库表结构全貌解析
- Hadoop 1.x 与 2.x 中 fsimage 和 edits 合并实现
- 整数分隔