谢谢你的帮助。这个问题已经解决:是因为服务器连接有请求是有一句:
If SerSock.State <> sckClosed Then
  SerSock.Close
   End If
去掉后解决了这个问题,但现在又有了新的问题。一旦有连接,客户端显示信息连接成功。但服务器端却报错:
Run-time error'40020';
Invalid operation at current state
请问这是什么原因?

解决方案 »

  1.   

    不知道你是一个socket监听,生成另外实例来和客户连接还是只用一个socket即监听又连接建议你采用第一种办法,比较正式
    看你发的代码好象你采用了第二种办法,那样的话那个if语句你就不能去掉,否则就会出现你所说的错误
      

  2.   

    要不直接把If去掉
    每一次请求连接都先关闭
      SerSock.Close
      

  3.   

    请问 snakeegg(蛇蛋) 你所说的一个socket监听怎么做呢?我不会,能不能详细告之。
    ozw(沧浪客)兄所说的方法还是会有第一次的问题出现啊。
      

  4.   

    在这里我贴过一段代码,去看一下吧
    用一个控件数组,0号元素始终监听,把连接请求分配给别的实例
    http://www.csdn.net/expert/topic/260/260059.shtm
      

  5.   

    Private Sub srSocket_ConnectionRequest(Index As Integer, ByVal requestID As Long)
        nSocket = nSocket + 1
        Load srSocket(nSocket)
        srSocket(nSocket).Accept requestID
        lblRemoteHost(nSocket).Caption = srSocket(nSocket).RemoteHostIP
    End Sub
    这一段能不能帮我解释一下。谢谢!
      

  6.   

    对不起,刚才有点忙,才看到
    那个nSocket是个全局变量,记录着生成的Socket实例总数
    当客户端连接请求到来时,被我监听端口得到,响应你上面说的那个事件,我要再新生成一个实例与该客户保持连接,就用了Load srSocket(nSocket)语句生成新的实例,同时令这个新的实例接收requestID
    没什么啊,可能是我表述的不够清楚,哪句没听懂,再问一下吧
      

  7.   

    好。我的问题解决了,没什么问题,谢谢你的帮助。
    以后有问题还请多多指教。
    很高兴认识你:snakeegg(蛇蛋)
      

  8.   

    Glad to meet you ,too!!!
    我的水平其实很烂的,一起学习啊 @_@