我用winsock1(0)来监听,过程动态创建winsock数组个数来接受连接请求,在GETDATA事件里index和接受请求的index是一致的,但是到senddata事件里index = 0,这是为什么啊?难道winsock不是哪个index接收数据,就还是那个index发送数据的吗?求大神解释
以下是代码:
Private Sub Command1_Click()
Dim index As Integer
Dim strsend As String
strsend = Text1.Text
Winsock1(index).SendData strsend
Label3.Caption = "发送成功" & index
End Sub
Private Sub form_load()
Winsock1(0).LocalPort = 3000
Winsock1(0).Listen
End Sub
Private Sub Winsock1_ConnectionRequest(index As Integer, ByVal requestID As Long)
Dim i As Integer
For i = 1 To Winsock1.UBound
If Winsock1(i).State = 0 Then Exit For
Next
If i > Winsock1.UBound Then Load Winsock1(i)
Winsock1(i).Accept requestID
Winsock1(i).SendData "连接成功"
Label1.Caption = "接受请求" & i
End Sub
Private Sub Winsock1_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim strget As String
Winsock1(index).GetData strget
List1.AddItem strget
Label2.Caption = "接受成功" & index
End Sub
以下是代码:
Private Sub Command1_Click()
Dim index As Integer
Dim strsend As String
strsend = Text1.Text
Winsock1(index).SendData strsend
Label3.Caption = "发送成功" & index
End Sub
Private Sub form_load()
Winsock1(0).LocalPort = 3000
Winsock1(0).Listen
End Sub
Private Sub Winsock1_ConnectionRequest(index As Integer, ByVal requestID As Long)
Dim i As Integer
For i = 1 To Winsock1.UBound
If Winsock1(i).State = 0 Then Exit For
Next
If i > Winsock1.UBound Then Load Winsock1(i)
Winsock1(i).Accept requestID
Winsock1(i).SendData "连接成功"
Label1.Caption = "接受请求" & i
End Sub
Private Sub Winsock1_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim strget As String
Winsock1(index).GetData strget
List1.AddItem strget
Label2.Caption = "接受成功" & index
End Sub