很久没写博客了,这两天解决了一个创建套接字(SOCKET)失败,错误码为10106的问题。从事网络编程的朋友可能也遇到过类似问题,大多数都可以通过重装系统解决。这次我想分析一下10106产生的根本原因,给大家提供另外一种思路,解决类似问题。
【环境】
WIN7,64位系统
【现象】
CAD2006平台程序不能联网,其他程序没有问题
【错误原因】
创建SOCKET失败,错误码10106
【尝试方法】
1. 在A.dll(非CAD程序启动时加载)的入口函数中测试网络连接,成功!
2. 在B.dll(CAD程序启动时加载)的入口函数中测试网络连接,失败!
3. 在B.dll的入口函数中手动加载ws2_32.dll成功,mswsock.dll失败,错误码127!
4. 卸载用户电脑上的卡巴斯基,不行!
5. 卸载cad重新安装,然后使用Registry Mechanic修复注册表,问题解决!
【原因分析】
使用MemDll加载mswsock.dll发现是修正IAT时失败了,具体原因是修正WahDestroyHandleContextTable函数地址时失败,
ws2_32.dll模块中找不到这个函数。我们知道,ws2_32.dll的5.1版本确实没有导出此函数,此函数在ws2help.dll中导出;
但是在6.1版本中(win7),ws2_32.dll导出了该函数。
进一步调试,在B.dll的入口函数中加载ws2_32.dll成功后,根据模块句柄获取模块路径,发现CAD2006平台程序中加载的ws2_32.dll模块路径在cad2006目录下,而其他程序则是在system32目录下。
令人不解的是,在cad2006目录下根本找不到ws2_32.dll文件,在整个系统中全局搜索,也只找到3个ws2_32.dll文件,都在系统目录下,并且都是6.1版本。手工拷贝一个6.1版本的ws2_32.dll文件到cad2006目录,问题依旧。于是怀疑是CAD平台程序的运行时环境出了问题(本质上是cad的运行时环境有问题),比如ws2_32.dll是不是真的加载成功了?获取到的ws2_32.dll的模块句柄是不是错乱了?是不是根据句柄获取模块所在目录的API错乱了等等。
尝试从已加载的ws2_32.dll模块中获取accept等5.1版本中的接口,都可以成功,这说明ws2_32.dll确实已经加载,并且有效,只是版本不对,是5.1,而非6.1。
最后将cad卸载掉重新安装,问题解决!

socket 10106问题解决日记相关推荐

  1. THINKPHP6 页面错误!请稍后再试~问题解决日记01

    ##今天经过各大神教程学习发现对表的时候测试出来一句 页面错误!请稍后再试 自己检查好多问题表头啊结果现在就处于一个没错误提示的尴尬界面 通过搜查TP5的解决方式是换 config.php文件show ...

  2. windows系统socket泄露问题解决--No buffer space available (maximum connections reached?): JVM_Bind

    今天在公司服务器上部署的一套后台系统突然不能使用了,上服务器看了一下,控制台打印了如下错误信息: java.net.SocketException: No buffer space available ...

  3. 一个JAVA WEB伪全栈的VUE入坑随笔,从零点零五学起

    开始时间:3.26日 接触Vue,先在官网十目一行学完了基本特性:http://cn.vuejs.org/v2/guide/,作为一个JAVA WEB的伪全栈,用Myclipse感受了一把双向绑定,感 ...

  4. linux常用c函数(中文版)

    都是linux的c函数东西略多,用页面搜索来查找吧. << Back to man.ChinaUnix.net isalnum(测试字符是否为英文或数字) 相关函数 isalpha,isd ...

  5. 百度前200页部分答案(初稿)

    1操作系统中 heap 和 stack 的区别 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.Java自动管理栈和堆,程序员不能直接地设置栈或堆. 在函数中定义的一些基本类 ...

  6. Python局域网socket无法连接的问题解决

    Python局域网socket无法连接的问题解决 服务器端的socket监听的是否是服务器的IP地址(并不是什么'localhost'或者'127.0.0.1'这种).即客户端需要连接的IP地址填入即 ...

  7. 解决foxmail提示“can not open socket WinSock Error:10106”

    试用foxmail提示"can not open socket WinSock Error:10106",安装一下方法试没有见效,后来发现我没有安装协议,因为我看有TCP/IP协议 ...

  8. python socket自动重连_详解python3中socket套接字的编码问题解决

    一.TCP 1.tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = ...

  9. java socket通讯_Java socket通讯实现过程及问题解决

    这篇文章主要介绍了Java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...

  10. java socket 卡住_Java socket通讯实现过程及问题解决

    这篇文章主要介绍了java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...

最新文章

  1. 【django】 F 和 Q 对象
  2. Linux多线程贝叶斯建树教程,建树经验.doc
  3. linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令
  4. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.2 用“逐步推进法”推测需要的数据...
  5. c#.net获取当前进程的句柄数量
  6. pandas 字符串切片后保存_Pandas时间序列基础详解(转换,索引,切片)
  7. Java的自动拆箱和装箱是Java语言的一颗语法糖
  8. html怎么制作表单,HTML如何制作表单
  9. 二、Linux 教程-基础命令(1~180未完)
  10. 豆瓣电影Top250信息爬取并保存到excel文件中!
  11. 正睿20秋季普转提day3
  12. mysql五日均线_5日均线战法(建议收藏)
  13. 青藤云Webshell查杀绕过
  14. linux安装各种系统插件
  15. ARM_UART 串行通讯基础知识及编程
  16. 基于Python+django的 古诗词在线学习网站-计算机毕业设计
  17. 电商技术架构演进过程——具体到每一个技术
  18. Wireshark分析明文账号、密码登录
  19. docker ubuntu容器安装ping工具
  20. 自监督学习、半监督学习、弱监督学习

热门文章

  1. 大厂技术实现 | 腾讯信息流推荐排序中的并联双塔CTR结构 @推荐与计算广告系列
  2. 如何将mp4视频格式转换成flv视频
  3. 2021年中国理财产品行业之新发行银行理财产品概览,中国银行发行2359只,位居榜首「图」
  4. 没有CCTV-5也不用慌的世界杯观战指南
  5. HigherHRNet代码复现问题集(assert isinstance(orig, torch.nn.Module))
  6. Leetcode编程练习一:盗马三则
  7. 写了一个内核模块实现简单的类似ps命令.
  8. 获得《软件方法》代金券的同学列表-漏了麻烦告知
  9. kaggle quora_我想以自己的方式使用网络,非常感谢Quora。
  10. 万网域名如何设置显性url转发和隐性URL转发