我在做一个小型的网管软件,开500个winsock进行TCP连接,VB程序作为客户端,发现在装有VB6的机子上运行正常。但打包装在其他机子上发现无法进行TCP连接,用Wireshark抓包时发现连接都成了广播形式,而且软件运行一段时间后出现10055的错误,请问高手们是我打包时少了某些空间呢,还是不同机子操作系统的问题呢?如果是打包的问题,那怎么知道少了某些必须的VB控件呢?出现错误的代码段应该是这里:我把定时器关了没装VB6的机子就不会出问题Private Sub Timer5_Timer()
Static i_0 As Integer
If i_0 = 0 Then i_0 = 1
If start_link = 3 Then
If Winsock2(i_0).State <> sckConnected Then
Winsock2(i_0).Close
delay (0.001)
Winsock2(i_0).Connect
delay (0.005)
End If
End If i_0 = i_0 + 1
If i_0 > 256 Then
i_0 = 1
End If
End Sub
Static i_0 As Integer
If i_0 = 0 Then i_0 = 1
If start_link = 3 Then
If Winsock2(i_0).State <> sckConnected Then
Winsock2(i_0).Close
delay (0.001)
Winsock2(i_0).Connect
delay (0.005)
End If
End If i_0 = i_0 + 1
If i_0 > 256 Then
i_0 = 1
End If
End Sub
改为
delay (30.000)
试试
发现我服务器端(就是一个工业设备)的IP是192.168.0.122,如果上位机的程序是从192.168.0.120之类的比较接近122的IP地址开始扫描,就能够连接;如果是从192.168.0.1开始扫描,连接到122时就失败了...winsock的状态总是在6而不是7
控件已经打包了发现我服务器端(就是一个工业设备)的IP是192.168.0.122,如果上位机的程序是从192.168.0.120之类的比较接近122的IP地址开始扫描,就能够连接;如果是从192.168.0.1开始扫描,连接到122时就失败了...winsock的状态总是在6而不是7