在ClientSocket与服务器通信时,怎样才能暂停正在通信的ClientSocket呢?
谢谢各位的帮忙!

解决方案 »

  1.   

    ClientSocket.Active:=false;
    ClientSocket.Socket.Connected=false;
    ClientSocket.Socket.Close;
      

  2.   

    怎么能暂停呢?不解
    你看看ClientSocket或ServerSocket里的源码,除了断开应该没有别的方法可以暂停的
    要么用 Socket.Lock? 锁定这个socket,这样能满足要求吗?
      

  3.   

    lock锁定当前通信的线程,不是暂停
    我说的暂停是:比如说,正在进行发送数据的Socket,让它暂停下来,
    然后还可以恢复发送数据!
      

  4.   

    我说的暂停是:比如说,正在进行发送数据的Socket,让它暂停下来,
    然后还可以恢复发送数据!
    ======================================================================是不是想做断点续传阿?
      

  5.   

    to myling(AD) ( ) 信誉:88 
    大侠说的对,应该怎么实现呢?
    请指教!
      

  6.   

    to  halfdream(哈欠) ( ) 信誉:135 
    你说的发数据,那还怎么保持连接呢,连接都断开了话,怎么才能恢复呢?
    还望赐教!
      

  7.   

    对于把socket做到线程暂停不解
    socket是把文件放在buffer里面.他己经形成缓存...
    送传后根本不用管.他怎么能暂停.
      

  8.   

    各位大侠看看下面这个办法怎么样?
    暂停得时候,就让Socket发送空白帧(可以自己定义)
    服务器端收到空白帧时,也恢复空白帧.(使得Socket保持连接)
    恢复的时候,Socket再发数据帧
      

  9.   

    当SOCKET两端收发数据时,
    当接收方不去recv,如果对端(发送端)程序编写良好,并且没有因超时什么的主动去CLOSE连接,
    那整个传输就会类似于暂停一样.当SOCKET双方都使用阻塞方式,接收方停下来,那发送方立即会阻塞而停下来.
    当SOCKET其中一方使用非阻塞,接收方停下来,发送方暂时还能发一点数据进SOCKET内部缓存,
    还是会因为缓存满而停下来.
      

  10.   

    to halfdream(哈欠) ( ) 信誉:135 
    你说的固然没错,但是我怎么样去主动的使得发送数据的Socket暂停下来呢?
    而且,还要能恢复
      

  11.   

    看来楼主要做的“断点续传”与我理解的有点不一样。
    如果是像 flashget那样的断点续传的话,没有必须让它暂停下来。每次记录下当前传送位置,即使断开了,下次从保存的位置继续就可以了,不需要暂停。
    能说出来具体用在哪里吗?真实环境的要求是什么?
      

  12.   

    你不进行SEND的时候就处于暂停状态~!!
      

  13.   

    你可以仔细想一想他的工作方式开始时,server一直处于监听状态client一旦连接进来,就建立了连接这时如果你什么事都不做,这种状态就一直保持,其他的什么都不做 <=======就是这里此时一旦有一端进行了数据传输,另一端就做出响应如果互相这么一问一答得,就会反复下去所以说是应答式的如果一方停止了回复就又回到了上面标记的状态下直到有一端打破僵局或者连接断开所以说没什么暂停不暂停的其实说了半天,相当于什么没说,呵呵