Winsock1.RemoteHost = "192.168.255.12"的IP不对吧,如果是本机测试,则用"127.0.0.1"即可。

解决方案 »

  1.   

    IP是正确的,改了127.0.0.1也不行,是不是winsock.ocx的原因?
    microsoft winsock control 6.0的控件文件是mswinsck.ocx?
    是不是.ocx有误?
      

  2.   

    你试一下一下代码:服务器端:
    Private Sub Form_Load()
      Winsock1.LocalPort = 1001
      Winsock1.Listen
      'form2.Show
    End SubPrivate Sub Text1_Change()
      Winsock1.SendData Text1.Text
    End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    If Winsock1.State <> sckClosed Then
      MsgBox ("连接错误")
      Winsock1.Close
    End If
    Winsock1.Accept requestID
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim strdata As String
      Winsock1.GetData strdata
      Text2.Text = strdata
    End Sub
    工作站端:
    Private Sub Command1_Click()
      Winsock1.Connect
    End SubPrivate Sub Form_Load()
      Winsock1.RemoteHost = "127.0.0.1"
      Winsock1.RemotePort = 1001
    End SubPrivate Sub Text1_Change()
      Winsock1.SendData Text1.Text
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim strdata As String
      Winsock1.GetData strdata
      Text2.Text = strdata
    End Sub严格意义上说,这段代码不是很合理,当我已经调试通过。
      

  3.   

    严格来讲 Winsock1.RemoteHost = "127.0.0.1" 有它的局限性
    因为我们这里的 127.0.0.1 代表本机器 ,localhost 和remotehost 有相同端口,数据在传输过程中同时(真正的同时)存在两个进程,传输和接收.
    本人用UDP或者TCP连接的时候,有时会出错而中断程序所以最好检查一下网络连接(物理)和协议的属性
      
      

  4.   

    小弟已经连接上了,错误原因是:winsock.connect实际上是正确的,也连上,只是if语句用的地方好,一接上就关掉了,当然查不出原因了,呵呵。
    下一步是:服务器端和客户端同时打开,连接可以使用,可是只关闭客户端的程序,再打开就不能边接上,state状态是:正在连接和错误。
    是不是要在程序关闭的时侯加点什么?winsock.close?小弟试了一下,不行。
      

  5.   

    服务器端要对Winsock1_Close事件进行编程,即关闭服务器(Winsock1.close);
    Client端要在程序退出的时候调用Close方法