看来小弟实在很笨,明明看到人家做出来,自己回家试了半天不行,到底为啥呢??? 
服务端:
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then Winsock1.Close
MsgBox "开始连接"
Winsock1.Bind
Winsock1.Listen
End Sub
--------------
Private Sub Form_Load()
Winsock1.LocalPort = "900"
End Sub
--------------------
Private Sub Text3_Change()
If Winsock1.State = sckConnected Then Winsock1.SendData Text3.Text
End Sub
--------------------
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept repuestid
End Sub
-----------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strdata As String
Winsock1.GetData strdata, vbString
Text2.Text = strdata
End Sub
----------------------------
客户端:
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then Winsock1.Close
MsgBox "等待连接"
Winsock1.Bind
Winsock1.Connect
Command1.Enabled = False
Command2.Enabled = True
End Sub
------------------------------
Private Sub Command2_Click()
Command1.Enabled = True
Command2.Enabled = False
Winsock1.Close
End Sub
------------------------------
Private Sub Text3_Change()
If Winsock1.State = sckConnected Then Winsock1.SendData Text3.Text
End Sub
--------------------------
Private Sub Winsock1_Connect()
MsgBox "连接正常!"
End Sub
--------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsock1.GetData str, vbString
Text2.Text = str
End Sub
 
运行后错误提示:
客户端的command1按钮第三行Winsock1.Connect错误"当前状态操作无效"

解决方案 »

  1.   

    客户端Winsock1.Bind改为Wisock1.remotehost 和Wisock1.remoteport,bind方法是本地端口。
      

  2.   

    楼上说吃的正确,我有个问题,就是客户端关掉连接后,再次启动,为什么就是连接不上?老是报地址正在使用的:
    Error Num:10048
    Description: 地址正在使用(服务器端的侦听在close事件中发现已经掉线后,设置了重新侦听,我调试也是在正常侦听中)
      

  3.   

    1.Winsock1.Bind 去掉
    2。先启动服务器 运行  Command1_Click 再启动客户段
    3。连接一次以后服务器和客户段都要关闭 然后从新开服务器