热情软件屋

 

用WINSCOK1.CLOSE关闭端口后,无法进行第二次连接


编号:QA002550
建立日期: 2000年2月11日 最后修改日期:2003年7月27日
所属类别:

xlwz:
    操作系统:WIN
    编程工具:VB
    问题:我有一个问题想请教,我用WINSOCK进行两机通信,但我无法用WINSCOK1.CLOSE关闭服务器端口,以致第一次运行能正常,但如要进行第二次连接便会出错,要隔一会儿才能连接,不知道我那里错了,该怎么做?它第二次连接的出错信息是“地址正在使用”。

回答:

    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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio