用WINSCOK1.CLOSE关闭端口后,无法进行第二次连接
编号:QA002550
建立日期: 2000年2月11日 最后修改日期:2003年7月27日
所属类别:
Q
xlwz:
操作系统:WIN
编程工具:VB
问题:我有一个问题想请教,我用WINSOCK进行两机通信,但我无法用WINSCOK1.CLOSE关闭服务器端口,以致第一次运行能正常,但如要进行第二次连接便会出错,要隔一会儿才能连接,不知道我那里错了,该怎么做?它第二次连接的出错信息是“地址正在使用”。
A回答:
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"
欢迎到我的VB站点 http://www.applevb.com/
qg163的意见:
在CLIENT端的winsock.connect前面加一句winsock.localport=0即可微软的Knowledge Base的文章:“173619“ B: Winsock Control Generates Error 10048 - Address in Use”。
谭波的意见:
在obj.close事件中关闭,重新打开端口。例如 :
Private Sub ws_server_Close()
ws_server.Close
ws_server.Protocol = sckTCPProtocol
ws_server.LocalPort = 10000
ws_server.Listen
End Sub
此问题由chen回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Internet编程, INET, www, internet, ie。
| |
|
|
| |
|
|