在服务器端再加入代码:
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then _
tcpserver.Close
'接受具有 requestID 参数的
'连接。
tcpserver.Accept requestID
End Sub

解决方案 »

  1.   

    谢谢楼上的,在服务器端我已经加入你说的代码了:
    Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    If Winsock1.State <> sckClosed Then Winsock1.Close
    Winsock1.Accept requestID
    End Sub可问题还是照旧:)
      

  2.   

    你将:
    Winsock1.RemoteHost = "127.0.0.1"
    Winsock1.RemotePort = 1001
    Winsock1.Connect
    加入到form_load事件中试试
      

  3.   

    还是这样,单击按钮后,不能执行Winsock1.SendData "abc"
    还是“所需事物或请求的错误协议或连接状态”错误!!!
      

  4.   

    我在我的机器上运行好使阿,你看看你的remotehost的设置对吗?或者你将remotehost改为你的机器名试试
      

  5.   

    谢谢zhplovelsy(张少侠)我试了,在窗体属性页里设置地址(主机名称)和端口
    好使,但是在运行时,利用代码设置就不好使了,为什么呀???
          因为我希望 地址(主机名称)和端口在程序运行时动态填加的,该怎么办呀!!   谢谢大家!!
      

  6.   

    我给你一段代码:
    服务器端:
    Private Sub Form_Load()
    '将 LocalPort 属性设置为一个整数。
    '然后调用 Listen 方法。
    tcpserver.LocalPort = 1001
    tcpserver.Listen
    frmclient.Show '显示客户端的窗体。
    End Sub
    Private Sub tcpServer_Close()
    tcpserver.Close
    tcpserver.Listen
    End Sub
    Private Sub tcpServer_ConnectionRequest _
    (ByVal requestID As Long)
    '检查控件的 State 属性是否为关闭的。
    '如果不是,
    '在接受新的连接之前先关闭此连接。
    If tcpserver.State <> sckClosed Then _
    tcpserver.Close
    '接受具有 requestID 参数的
    '连接。
    tcpserver.Accept requestID
    End Sub
    Private Sub tcpServer_DataArrival _
    (ByVal bytesTotal As Long)
    '为进入的数据声明一个变量。
    '调用 GetData 方法,并将数据赋予名为 txtOutput
    '的 TextBox 的 Text 属性。
    Dim strData As String
    tcpserver.GetData strData
    txtoutput.Text = strData
    客户端:
    Private Sub Command1_Click()
    tcpclient.SendData txtsend.Text
    End Sub
    Private Sub Command2_Click()
    tcpclient.Close
    cmdconnect.Enabled = True
    End Sub
    Private Sub Form_Load()
       'Winsock 控件的名字为 tcpClient。
       '注意:要指定远程主机,可以使用
       ' IP 地址(例如:"121.111.1.1"),也可以使用
       '计算机的“好听的名字”如下所示。
       tcpclient.RemoteHost = "zhangsong"
       tcpclient.RemotePort = 1001
        End Sub
    Private Sub cmdConnect_Click()
       '调用 Connect 方法,初始化连接。
       tcpclient.Connect
     End Sub
    Private Sub tcpclient_Connect()
    If tcpclient.State = sckConnected Then
     StatusBar1.Panels(1).Text = "连接"
    cmdconnect.Enabled = False
    End If
    End Sub
    Private Sub tcpClient_DataArrival _
    (ByVal bytesTotal As Long)
       Dim sData As String
       tcpclient.GetData sData
       txtoutput.Text = sData
    End Sub
    以上代码我都运行通过。
      

  7.   

    在服务器端再加入代码:
    Private Sub tcpServer_ConnectionRequest _
    (ByVal requestID As Long)
    '检查控件的 State 属性是否为关闭的。
    '如果不是,
    '在接受新的连接之前先关闭此连接。
    If tcpserver.State <> sckClosed Then _
    tcpserver.Close
    '接受具有 requestID 参数的
    '连接。
    tcpserver.Accept requestID
    End Sub