if Winsock.State<>7 then 
   winsock.close
else
   winsock.sendata "mess"
end if

解决方案 »

  1.   

    socket控件,有个close事件,就是当对方的close以后的处理。所以不需要判断对方。在这个事件里写代码就成。一般写关闭自己的代码.socketserver.close即可。
      

  2.   

    必须要先启动服务器端的程序。然后客户端connect
      

  3.   

    多谢各位,懂了一些了。 songccs(阿松) :
    有没有winsock.state的具体值和对应的意义的表。
    另外我这么用:
    cliSocket.connect "127.0.0.1",5050
    if cliSocket.state<>7 then
       cliSocket.close
    else
       cliSocket.sendData "Hello"
    end if结果每次都不等于7,然后cliSocket就close了。
    是不是connect之后要等一段时间之后,再用clisocket.state做判断?
      

  4.   

    我也遇到一些问题:当我与Server的连接中断后,再去连的话,就再也连不上,说是:Address in use.只有用另一个Winsock才能连上
    Winsock1.Close
    Winsock1.RemoteHost = RemoteIP
    Winsock1.RemotePort = RemotePort
    Winsock1.Connec
    我这样有什么错误吗?
      

  5.   

    客户端的 Connect 后,是要等服务端 Accept 的,否则就是未建立连接基本的流程是 Server侦听,调用 Listen
    Client连接,调用 Connect
    Server 接收连接,发生事件 ConnectionRequest,建立连接 Accept(RequestID)
    Client 得到已连接事件 Connect双方到现在为止方可发送信息。
      

  6.   

    xiaoxinghappy(小星) :
    多谢指点,现在可以互相发送数据了。
      

  7.   

    注意查一下WINSOCK的连接状态字,主要是1-7,记得好象8和9也有用的
    7是连接成功,只要判断STATE=7就可以发送了,否则就会出错
      

  8.   

    哪里可以查到WINSOCK状态码的含义?或者哪里有这方面的资料。