各位大哥:程序甲: (甲电脑IP = 192.168.0.209  )remotehost = 192.168.0.234 remoteport =1200   Option ExplicitPrivate Sub Command1_Click()    Dim STR As String    STR = "XIEXIENI"
    sckconnect.SendData STR
    
End SubPrivate Sub Command2_Click()
    sckconnect.Connect sckconnect.RemoteHost, sckconnect.RemotePort
End Sub程序乙: (乙电脑的IP =192.168.0.234 )LocalPort = 1200 Option ExplicitPrivate Sub Form_Load()
    sckserver(0).Bind sckserver(0).LocalPort '与本地端口绑定
    sckserver(0).Listen
End SubPrivate Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    
    If sckserver.Count = 1 Then
        Load sckserver(1)
        sckserver(1).Accept requestID
    End If
    
End SubPrivate Sub sckserver_DataArrival(Index As Integer, ByVal bytesTotal As Long)    Dim sdata As String
    
    sckserver(1).GetData sdata, vbStringEnd Sub
我所处的网络环境是局域网中,我所用的两台电脑是通过公司的代理服务器 上的网.
 (乙电脑的IP =192.168.0.234 ) 程序甲: (甲电脑IP = 192.168.0.209  )  请问是我的程序有问题 还是在这中代理服务下 不能够进行通信调试呢?                                      谢谢!!!

解决方案 »

  1.   

    只要是局域网就可以。指定对ip就行
        sckserver(0).Bind sckserver(0).LocalPort '与本地端口绑定
        sckserver(0).Listen
    其中 sckserver(0).Bind  多余,去掉,udp协议才用bind
      

  2.   

    to zyg0(影子(成功减肥10斤,可给我饿坏了,我要补回来) u wrongtcp也需要bind,只不过vb中只默认第一个ip地址,自动替你绑定到这个ip了
    如果一台电脑有N个IP地址,使用tcp就必须bind
      

  3.   

    先乙电脑运行 然后 甲电脑运行,试验下
    Private Sub Form_Load()
        sckserver(0).LocalPort=1200    '与本地端口绑定
        sckserver(0).Listen
    End Sub
    Private Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long)
        
     '这个事件本身就是发送连接请求时候触发,不需要判断
            Load sckserver(1)
            sckserver(1).Accept requestIDEnd Sub
      

  4.   

    Private Sub sckserver_DataArrival(Index As Integer, ByVal bytesTotal As Long)    Dim sdata As String
        
        sckserver(1).GetData sdata, vbString----sckserver(index).getdata sdataEnd Sub
      

  5.   

    思路:
    甲用tcp  listen侦听
    乙发连接请求
    甲响应并判断是否是对应的客户端发出的请求
    正确则发送正确指令到客户端,客户端显示连接成功
    否则直接断线这样就连接成功了
    客户端传数据给服务端时直接SendData
    服务端用GetData收
    服务端也直接用SendData
    客户端也是用GetData收
    OK在测试时先用单一的连接
    成功后再测试数组连接如果单一连接不成功说明网络中有阻碍
    先解决网络问题再试
      

  6.   

    VB中Winsock的UDP协议的例子;
    甲机器程序:(甲机器IP =192.168.0.209)Private Sub Form_Load()
         With sckconnect
         .RemoteHost = "192.168.0.202" '要连接到的计算机名
         .RemotePort = 1200 '要连接到的端口号
         .LocalPort = 1201 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
         .Bind 1201 '将该Winsock控制绑定到该本地端口
         End With
    End SubPrivate Sub sckconnect_DataArrival(ByVal bytesTotal As Long)     Dim strData As String
         sckconnect.GetData strData, vbString
         txtOutput.Text = strData
         
    End SubPrivate Sub txtSend_Change()
     sckconnect.SendData txtSend.Text '发送文本
    End Sub
    乙机器程序:(乙机器IP =192.168.0.202)
    Private Sub Form_Load()
         With sckserver
         .RemoteHost = "192.168.0.209" '要连接到计算机的IP地址
         .RemotePort = 1201 '要连接到的端口号
         .LocalPort = 1200'该Winsock控制将使用的本地端口号,便于其它方与之通讯
         .Bind 1200'将该Winsock控制绑定到该本地端口
         End WithEnd SubPrivate Sub sckserver_DataArrival(ByVal bytesTotal As Long)
         Dim strData As String
         sckserver.GetData strData, vbString
        txtOutput.Text = strData
    End SubPrivate Sub txtSend_Change()
         sckserver.SendData txtSend.Text '发送文本
    End Sub先运行乙程序,再运行甲程序...在甲程序中txtSend 输入字符后 弹出错误消息:
    实时错误:40006
    所需事物或请求错误协议或连接状态.
       帮我分析一下原因..... 解决后马上散分....!! 多谢!!
      

  7.   

    这个必须2个程序都运行之后才能在甲中输入,这个是msdn中的例子程序,看帮助把朋友
    ,你看下你的winsock 控件属性是不是选择的udp,默认是tcp