写了一个小程序。客户端程序于服务器端程序建立了连接,然后客户端向服务器端发了一个请求数据的命令,开始等待服务器端返回数据。但由于特殊的要求,服务器端会延迟很久才返回数据。那么这种情况下,客户端程序会超时中止连接呢还是会一直等下去。
如果我希望客户端程序一直等下去,该如何设置。

解决方案 »

  1.   

    ioctlsocket设置阻塞状态,客户端程序一直listen,不会超时中止
    超时设置:int setsockopt(
      SOCKET s,                 
      int level,                
      int optname,              
      const char FAR *optval,  
      int optlen                
    );
      

  2.   

    用CSocket派生出来你的类就行了!
      

  3.   

    如果是堵塞(默认)状态的话,会一直等下去,但是很占系统资源,非堵塞的话可以设置超时
    ,用select(),看看《WINDOWS SOCKETS规范及应用-WINDOWS网络编程接口.DOC》
      

  4.   

    对于阻塞的套接字来说,发送数据后立刻Select(),判断一定时间后是否可读就行了!!!
      

  5.   

    是的,用CSocket派生出来你的类就行了!
    但你这样的程序不好,因为你同时也要设置超时的,如果你的服务当掉,难道客户端就一直这样等吗?
    还是回到筐架设计层面来好。