用的是TCP/IP1。如果在tcpServer_DataArrival()中
tcpServer.SendData strReturn
tcpServer.Close --返回处理结果后,直接关掉连接。则虽然客户断开了,客户收不到相应处理结果,只收到空字符。
2。而如果没有tcpServer.Close,则客户端可收到相应处理信息,但再次连接就连不上了。
如果处理?由于客户端程序的编程人员不便联系,所以我想在发出处理信息后,从服务器断开连接。如果实现

解决方案 »

  1.   

    使用控件数组吧。
    tcpServer(0)负责监听。
    有新连接请求时加载一个新的控件:load tcpserver(1)
    再有新连接请求时加载一个新的控件:load tcpserver(2)
    ......
    一定行!
      

  2.   

    简单写是这个样子的......但是有个问题是,如果服务器不关,一直有客户端连接,那么数组控件会很多,但是有可能好多客户端都已经关闭连接了所以建议定义一个数组变量来检测 记录 Winsock 控件数组哪个没有被使用,在加载的时候用for来检测一下,这样可以减少资源的浪费Option Explicit
    Dim NextWS As LongPrivate Sub Form_Load()
    NextWS = 1
    End SubPrivate Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)Load Winsock1(NextWS)Winsock1(NextWS).Accept requestIDNextWS = NextWS + 1
    End Sub