问个诡异的winsock2中的connect的问题,10061错误

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:32:00
情景是简单的单server单client,用的tcp协议
当client窗口是当前窗口的时候,client端调用connect可以连结server,通信一切正常
但是当client窗口为非焦点的时候,connect就返回错误了,WSAGetLastError得到的是
10061(connection refused),且这种情况下使用wireshark截包发现并没有tcp包出现。。。

另外,把连接发送的代码放在新线程里仍然是这个现象。

不知道程序sb到哪个地方了,有人能指点下吗?谢谢
我自己答吧。。。这个问题搞了一天,终于发现还是跟窗口相关的,是dll里全局变量的定义问题,dll里有个全局钩子函数用到了这个全局变量,而这个全局变量没有加链接器指令导致钩子在不同应用程序中的变量值不同。。。

谢谢两位的回复,etliu的更接近一些,分给你吧

socket 与界面没有必然联系,完全可以把服务端或客户端做成无界面的。

所以不是窗口是否焦点的原因,应该是程序逻辑有问题。

具体是哪里出错,需要看代码。

10061我也经常出.错误的定义宏是:WSAECONNREFUSED,MSDN的描述是:
The attempt to connect was forcefully rejected.
也就是访问被拒绝.
你还是把代码发上来吧.
靠猜的,不容易猜出来啊.