+ -
当前位置:首页 → 问答吧 → 还是winsock搞不定,高手们来围观

还是winsock搞不定,高手们来围观

时间:2011-07-27

来源:互联网

我用VB6的winsock做过动态数组,进行多个地址的TCP连接,部分代码如下 :

Private Sub Timer5_Timer()
Static i_0 As Integer '全部的socket
Static i_1 As Integer
  If i_0 = 0 Then i_0 = 110
 
  If start_link = 3 Then
  If Winsock2(i_0).State <> sckConnected Then
  If i_1 = 0 Then
  Winsock2(i_0).Close
  i_1 = 1
  Else
  Winsock2(i_0).Connect
  i_1 = 0
  End If
  End If
  End If

  If i_1 = 0 Then i_0 = i_0 + 1
  If i_0 > 130 Then
  i_0 = 110
  End If
   
End Sub
功能是判断如果是该连接断开的话,就尝试连接,在我自己用的电脑上发现正常运行。
但在某些机子上运行时发现,在进行TCP三次握手成功后,该程序又会自动发送[RST/ACT]命令来复位;并且软件在运行一段时间后会出现10055的错误,好像是TCP的缓冲区不够,出现错误地方是在Winsock2(i_0).Connect语句。但目前我尝试了六台电脑,有三台电脑正常,三台会出现上述情况,高手们来分析一下?

作者: wildone   发布时间: 2011-07-27

终于查明原因了,是TCP连接数限制的问题,文件是Tcpip.sys。现在找了个1000个连接的打包进安装程序就好了,但还有一个问题,因为是系统文件,安装程序后系统有提示,怎么能够想那些补丁包一样去除系统的提示呢

作者: wildone   发布时间: 2011-07-28

热门下载

更多