窗体1的源码!
  Private Sub Form_Load()
  '控件的名字为   udpPeerA
  With udpPeerA
  '重点:必须将   RemoteHost   的值
  '修改为计算机的名字。
  .RemoteHost = "127.0.0.1"
  .RemotePort = 1001           '连接的端口号。
  .Bind 1002                                   '绑定到本地的端口。
  End With
  FrmPeerB.Show                                   '显示第二个窗体。
  End Sub
    
  Private Sub txtSend_Change()
  '在键入文本时,立即将其发送出去。
  Debug.Print udpPeerA.State
  udpPeerA.SendData txtSend.Text
  End Sub
    
  Private Sub udpPeerA_DataArrival _
  (ByVal bytesTotal As Long)
  Dim strData     As String
  udpPeerA.GetData strData
  txtOutput.Text = strData
  End Sub窗体2的源码!  Private Sub Form_Load()
  '控件的名字为   udpPeerB。
  With udpPeerB
  '重点:必须将   RemoteHost   的值改为
  '计算机的名字。
  .RemoteHost = "127.0.0.1"
  .RemotePort = 1001             '要连接的端口。
  .Bind 1001                                   '绑定到本地的端口上。
  End With
  End Sub
    
  Private Sub txtSend_Change()
  '在键入后立即发送文本。
  udpPeerB.SendData txtSend.Text
  End Sub
    
  Private Sub udpPeerB_DataArrival _
  (ByVal bytesTotal As Long)
  Dim strData     As String
  udpPeerB.GetData strData
  txtOutput.Text = strData
  End Sub为什么调试的时候往文本理输入文字就会出现:
"实时错误'40006':
所需事物或请求的错误协议或连接状态
这个是什么回事啊?

解决方案 »

  1.   


    '  建立一个新标准EXE工程文件,拖放一个Winsock控制到表单上,添加两个文本框到表单上,然后进行以下属性的设置: 
    '  表单(Form):Name=“frmPeerA” Caption=“UDP Application(1)” 
    '  Winsock控制:Name=“udpPeerA” Protocol=“sckUDPProtocol” 
    '  文本框1(TextBox): Name“txtSend” 
    '  文本框2(TcxtBox): Name=“txtOutput” MultiLine-True ScrollBars=2 
    '  然后打开代码窗口,分别在相应的事件下输入以下代码: 
      Private Sub Form_Load() 
       With udpPeerA 
       .RemoteHost="197.1.1.2" '要连接到的计算机名 
       .RemotePort=1010 '要连接到的端口号 
       .LocalPort=1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯 
       .Bind 1011 '将该Winsock控制绑定到该本地端口 
       EndWith 
      End Sub 
      Private Sub txtSend_Change() 
       udpPeerA.SendData txtSend.Text'发送文本 
      End Sub 
      Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long) 
       Dim strData As String 
       udpPeerA.GetData strData,vbString 
       txtOutput.Text = strData 
      End Sub 
    '  UDP应用二: 
    '  类似建立UDP Server的方法,在表单上添加一个Winsock控制及两个文本框,然后进行以下属性的设置: 
    '  表单(Form):Name=“frmPeerB” Caption=“UDP Application(2)” 
    '  Winsock控制:Name=“udpPeerB” Protocol=“sckUDPProtoclool” 
    ''  文本框1(TextBox):Name=“txtSend” 
    '  文本框2(TextBox):Name=“txtOutput” MultiLine=True ScrollBars=2 
    '  然后输入以下代码: 
      Private Sub Form_Load() 
       With udpPeerB 
       .RemoteHost="197.1.1.2" '要连接到计算机的IP地址 
       .RemotePort=1011 '要连接到的端口号 
       .LocalPort=1010 '该Winsock控制将使用的本地端口号,便于其它方与之通讯 
       .Bind 1010 '将该Winsock控制绑定到该本地端口 
       End With 
      End Sub 
      Private Sub txtSend_Change() 
       udpPeerB.SendData txtSend.Text '发送文本 
      End Sub 
      Private Sub udpPeerB_DataArrival(ByVal bytesTotal As Long) 
       Dim strData As String 
       udpPeerB.GetData strData,vbString 
      txtOutput.Text=strData 
      End Sub 
      

  2.   

    还有一种方法'第一个窗体中代码
    Private Sub Form_Load()
       With udpPeerA
          .Protocol = sckTCPProtocol
          .LocalPort = 4000
          .Listen
       End With
       FrmPeerB.Show
    End Sub
        Private Sub txtSend_Change()
           udpPeerA.SendData txtSend.Text
        End SubPrivate Sub udpPeerA_ConnectionRequest(ByVal requestID As Long)
       udpPeerA.Close
       udpPeerA.Accept requestID
       udpPeerA.SendData "连接成功"
    End SubPrivate Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
      Dim str As String
      udpPeerA.GetData str
      txtOutput.Text = str
    End Sub
    '第二个窗体中代码Private Sub Form_Load()
      With udpPeerB
         .Protocol = sckTCPProtocol
         .Connect .LocalIP, 4000  '如果不同机器上,将.localIp改为远程计算机的名称
      End With
    End Sub
     Private Sub udpPeerB_DataArrival(ByVal bytesTotal As Long)
      Dim str As String
      udpPeerB.GetData str
      txtOutput.Text = str
    End Sub    Private Sub txtSend_Change()
           udpPeerB.SendData txtSend.Text
       End Sub