我在做一个小型的网管软件,开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

解决方案 »

  1.   

    delay (0.001)
    改为
    delay (30.000)
    试试
      

  2.   

    把mswinsck.ocx都打包到客户端试试
      

  3.   

    改了delay的时间也不行
    发现我服务器端(就是一个工业设备)的IP是192.168.0.122,如果上位机的程序是从192.168.0.120之类的比较接近122的IP地址开始扫描,就能够连接;如果是从192.168.0.1开始扫描,连接到122时就失败了...winsock的状态总是在6而不是7
      

  4.   


    控件已经打包了发现我服务器端(就是一个工业设备)的IP是192.168.0.122,如果上位机的程序是从192.168.0.120之类的比较接近122的IP地址开始扫描,就能够连接;如果是从192.168.0.1开始扫描,连接到122时就失败了...winsock的状态总是在6而不是7