winsock多IP发送数据vb6

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

如果可以使用winsock向不同的IP发送文本,我已经在不同的论坛中搜索了很长时间,但我找不到如何发送文本。 我试着把两个不同的winsock放在同一个表单中,但第二个winsock的消息从未到达。 这是我的代码:

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并不重要。只要你有两个独立的连接就能完成任务