先运行服务器端,然后第一次运行客户端没问题,可以通信,但关闭客户端后再运行就报错:
Run-time error '40006'
Wrong protocol or connection state for the requested transaction or request
Run-time error '40006'
Wrong protocol or connection state for the requested transaction or request
解决方案 »
- 求助,VB程序运行突然变慢
- VB的几个难题
- 关于TrueDBGrid7中下拉列表控件的适用!!!
- PictureBox控件Print方法的使用
- 为什么数据库里的int数据不能插入?
- 请教:用DAO打开的数据库怎么在DataGrid中显示出来了?
- 怎样样才能知道一个TEXTBOX控件中的内容是不是被改动了呢?急呀
- 如果两个控件重叠在一起了,有什么属性可以设置哪个控件在上边,另一个控件在下边吗?
- Help!! crystl32.ocx 不能注册! (VB PWD 做的安装程序,Crystal Report 8.5, 在Win98下安装 )
- 关于winsock的发送Double类型的问题
- 查询时间控制
- 设置背景色
我在客户端的Form_Unload方法已经写了:
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsockserver.LocalPort = 1234
Winsockserver.Listen
End SubPrivate Sub Form_Unload(Cancel As Integer)
If Winsockserver.State <> sckClosed Then
Winsockserver.Close
End If
End SubPrivate Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim webData As String
Winsockserver.GetData webData, vbString '检取当前的数据块
txtMessage.Text = webData
End SubPrivate Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
'Winsockserver.Tag = 0
Winsockserver.Accept requestID
End SubPrivate Sub Winsockserver_Close()
Winsockserver.Close
'End
End Sub
Winsockserver.Close
Winsockserver.Listen '你不重新监听,恐怕不行吧?呵呵。再试一下?
'End
End Sub
服务端收到"quit"后Server.close
Server.listen
具体代码如下Client断开连接后再与Server连接就连接不上,必须退出应用重新进入才能连
接, 解决是不要在 Client 端使用 Close 方法, 而在服务端使用。服务端的数据接受过程:
Sub Server_DataArrival(ByVal bytesTotal as Long)
Dim vbStr as String
Server.GetData DataReceived, vbStr
if Cstr(DataReceived)= "QUIT" then
server.close
server.LocalPort = 1111
server.Listen
end if
。。
End Sub客户端关闭时:
Client.SendData "QUIT"
WinSock.close后
先Unload winsock(i)
再load winsock(i)