昨天下午工厂测试产线上线了新的笔记本整机(WIN10 177663),测试笔记本时,发现笔记本中的TCP/IP客户端无法连接测试主机的服务端程序(TCPListener/TCPClinet)。但是在安装有WIN10 17134的笔记本中,程序一切正常。
以下为我排查思路:
1.检查新笔记本防火墙是否已经关闭。——已经关闭
2.检查到网络连接模式为公共网络。——改为专用网络
在新笔记本中先用程序源码调试查看了一下,发现在客户端连接服务端后,在客户端获取连接的远程IPEndPoint时出错,而在老笔记本中获取正常。根据报错信息“the system detected an invalid pointer address in attempting to use a pointer argument in a call“,“system.net.sockets.socketexception 0x80004005”,百度了好久,没有找到合适的答案。
3.用友善串口调试助手中的网络调试工具,测试TCP/IP客户端服务端通讯正常。——自己的软件可能有问题。
4.同事无意间使用 “网络适配器” 右键属性菜单中的“诊断”功能,诊断之后,没有发现问题,仍然重置了一下网络适配器。
经过这个诊断修复之后,程序可以正常通讯了。
总结:
1.上述第4条中,诊断之后,检测到问题就修复,没有检测到问题,就继续重置一下适配器。
2.在系统升级前网络通讯一直正常,升级系统后通讯不正常的,可以先重置一下网络适配器,或者有没用的虚拟网络适配器也可以先禁用。
3.之前一直正常运行的程序,在外部情况发生变化后出问题,先一步步排除外部影响因素,最终再查源码,排除问题。