winsock多IP发送数据vb6
如果可以使用winsock向不同的IP发送文本,我已经在不同的论坛中搜索了很长时间,但我找不到如何发送文本。 我试着把两个不同的winsock放在同一个表单中,但第二个winsock的消息从未到达。 这是我的代码:winsock多IP发送数据vb6,vb6,ip,winsock,Vb6,Ip,Winsock,如果可以使用winsock向不同的IP发送文本,我已经在不同的论坛中搜索了很长时间,但我找不到如何发送文本。 我试着把两个不同的winsock放在同一个表单中,但第二个winsock的消息从未到达。 这是我的代码: Private Sub Form_Load() On Error Resume Next a = bytMsg() wsck.RemoteHost = strNombreATMMonitor2 wsck.RemotePort = vPuertoATMMonitor2 wsck.Con
Private Sub Form_Load()
On Error Resume Next
a = bytMsg()
wsck.RemoteHost = strNombreATMMonitor2
wsck.RemotePort = vPuertoATMMonitor2
wsck.Connect
'Conectamos el segundo
Winsock1.RemoteHost = strNombreATMMonitor
Winsock1.RemotePort = vPuertoATMMonitor
Winsock1.Connect
End Sub
Private Sub wsck_Close()
On Error Resume Next
wsck.Close
End
End Sub
Private Sub wsck_Connect()
On Error GoTo Err_wsck_Connect
wsck.SendData a
End_wsck_Connect:
Exit Sub
Err_wsck_Connect:
GrabaLog "wsck_Connect", Err.Description, " " & Err.Number & " Host: " & strNombreATMMonitor
Resume End_wsck_Connect
End Sub
Private Sub wsck_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'si no es un recordatorio, lo grabo
If bytRecordatorio = 0 Then
GrabaOff strLineaComandos
End If
GrabaLog "wsck_Error", "RemoteHost" & " - " & wsck.RemoteHost & " - RemotePort - " & Trim(wsck.RemotePort), "Error = " & Trim(Number) & " - " & Description
End
End Sub
Private Sub wsck_SendComplete()
On Error GoTo Err_wsck_SendComplete
wsck.Close
'Graba en un log el mensaje de NCR pasado como parametro a ATMSpyNEW + FTP
TrazaLog "ATMMonitor1 - " & strLineaComandos
End_wsck_SendComplete:
End
Err_wsck_SendComplete:
GrabaLog "wsck_SendComplete", Err.Description, "" & Err.Number
Resume End_wsck_SendComplete
End Sub
Private Sub Winsock1_Close()
On Error Resume Next
Winsock1.Close
End
End Sub
Private Sub Winsock1_Connect()
On Error GoTo Err_Winsock1_Connect
Winsock1.SendData a
End_Winsock1_Connect:
Exit Sub
Err_Winsock1_Connect:
GrabaLog "Winsock1_Connect", Err.Description, " " & Err.Number & " Host: " & strNombreATMMonitor
Resume End_Winsock1_Connect
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'si no es un recordatorio, lo grabo
If bytRecordatorio = 0 Then
GrabaOff strLineaComandos
End If
GrabaLog "Winsock1_Error", "RemoteHost" & " - " & Winsock1.RemoteHost & " - RemotePort - " & Trim(Winsock1.RemotePort), "Error = " & Trim(Number) & " - " & Description
End
End Sub
有人知道如何使用一个或两个winsock控件向至少两个不同的Ip(远程主机)发送文本吗?我创建了一个新的VB6项目,并在表单1中添加了两个winsock控件。即Winsock1和Winsock2。然后我添加了两个文本框(仅用于测试以显示Winsocks的输入和输出),并将它们设置为允许多行。我添加了一个按钮(cmdSendData),将数据发送到两个winsocks。在Form_Load事件中,我将这两个Winsocks连接到一个我已经有权访问的公共TelNet服务器(您需要将IP地址更改为可以测试的地址)。我能够通过两个Winsocks发送数据(即使它们连接到同一台机器,但它们的行为是分开的,如果我知道有另一个IP正在等待连接请求,那么可以轻松地将其中一个的IP更改为另一个) 我跳过了错误处理,因为我相信您可以找到将其放在何处
Private Sub Form_Load()
Me.Winsock1.RemoteHost = "10.11.27.87"
Me.Winsock1.RemotePort = "23"
Me.Winsock1.Connect
Me.Winsock2.RemoteHost = "10.11.27.87"
Me.Winsock2.RemotePort = "23"
Me.Winsock2.Connect
End Sub
Private Sub cmdSendData_Click()
Me.Winsock1.SendData "admin" & vbCrLf
DoEvents 'This is necessary to immediatelly send the data without waiting for
' a certain buffer to be filled first
Me.Winsock2.SendData "admin" & vbCrLf
DoEvents 'same as above
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim txt As String
Me.Winsock1.GetData txt
Me.Text1.Text = Me.Text1.Text & vbCrLf & txt
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim txt As String
Me.Winsock2.GetData txt
Me.Text2.Text = Me.Text2.Text & vbCrLf & txt
End Sub
您可以同时使用多个winsock对象。您确定有主机正在侦听第二个连接吗?非常感谢!!我将尝试您的代码…但在您的示例中,两个示例中的remoteHost Ip都是“10.11.27.87”,更改后的结果是否相同?是的。它是相同的还是不同的IP并不重要。只要你有两个独立的连接就能完成任务