试了一下你的代码,根据我的经验,你在客户端断开连接后服务端并没有重新listen,所以下次客户端连接时会"无法连接到服务器"。
你要在客户端断开连接后用:
wskServer.Close
wskServer.Listen
让服务端重新listen判断客户端是否已经断开用wskServer_Close()事件,当客户端断开时服务端会触发这个事件,所以,你只需在主机(34a-4)程序中加入以下代码应该就OK了!Private Sub wskServer_Close()
wskServer.Close
wskServer.Listen
End Sub

解决方案 »

  1.   

    哦,你还有第二个问题呀,刚才没看到!就你目前服务端的代码来看,它只能伺服一个客户机程序。要做到一个服务器与多台客机聊天,必须再加一个winsock,这个winsock一直listen,有连接请求时让另外的winsock去Accept,自己仍保持listen。一般来说用winsock数组比较好,有ConnectionRequest时用Load winsock数组(winsock数组索引+1)动态创建一个winsock去Accept,这样节省内存并且编程容易。并不难,你只要多动动脑筋应该可以编出来!
      

  2.   

    看MSDN你的问题自己就会弄明白的,WINSOCK工作道理你还不全明白
    你只是客户断了,服务器还是记着你上一次的客户连接呢,那门就是给上一次的客户开着的,再来一个他就认为是假昌的了,当然给你的错误了