使用Winsock控件在服务器端接受多个请求为什么出问题:
服务器端代码如下Private intMax As Long
Private Sub cmdSend_Click()Dim Max As Integer
Max = intMax'''下面的程序得不到预期的结果,不能在多个客户端收到来自服务器的信息'''''''
Do While Max > 0
If tcpServer(Max).State = 7 Then tcpServer(Max).SendData 
Max = Max - 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
LoopEnd SubPrivate Sub Form_Load()    intMax = 0   tcpServer(0).LocalPort = 1001
   tcpServer(0).Listen'tcpServer.LocalPort = 1001
'tcpServer.Listen
frmClient.Show 
frmClient01.Show
End SubPrivate Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If tcpServer(0).State <> sckClosed Then _
tcpServer(0).Close
   If Index = 0 Then _
      intMax = intMax + 1
      Load tcpServer(intMax)
      tcpServer(intMax).LocalPort = 0
      tcpServer(intMax).Accept requestID
      
      
      Label1.Caption = "Client  " + CStr(intMax) + "  Connect"      
      
End Sub

解决方案 »

  1.   

    Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)   If Index = 0 Then 
          intMax = intMax + 1
          Load tcpServer(intMax)
          tcpServer(intMax).LocalPort = 0
          tcpServer(intMax).Accept requestID
          Label1.Caption = "Client  " + CStr(intMax) + "  Connect"
       end if
    End SubPrivate Sub cmdSend_Click()Dim Max As Integer
    Max = intMax'''下面的程序得不到预期的结果,不能在多个客户端收到来自服务器的信息'''''''
    Do While Max > 0
    If tcpServer(Max).State = 7 Then tcpServer(Max).SendData  "内容"
    ' 在这里加上延时
    Max = Max - 1
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    LoopEnd Sub
      

  2.   

    If tcpServer(0).State <> sckClosed Then _
    tcpServer(0).Close这句话需要吗???
      

  3.   

    Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
          intMax = intMax + 1
          Load tcpServer(intMax)
          tcpServer(intMax).LocalPort = 0
          tcpServer(intMax).Accept requestID
          Label1.Caption = "Client  " + CStr(intMax) + "  Connect"
    End Sub