我用的是CSocket,在客户端阻塞接收数据,单线程(因为每次数据不大,大概就1  2秒,所以没开多线程) 
但是发现如果正在传输的时候 如果服务器那边断了, 
客户端不知道,一直在那里阻塞接收, 
想问一下怎样编程实现让它阻塞超过10秒以后返回错误并断开
在想个问题
settimet是基于窗口的
我只是实现一个类提供连接啊传输数据
不想新建一个空窗口如果用心跳包的话
是不是要弄成多线程的,在其他线程中知道网络断开了,然后终止数据传输线程呢?如果单线程还有其他办法么,各位大大们啊  99我吧
心力交瘁啊

解决方案 »

  1.   

    通过定时器,每隔5秒就去Peek一下,网卡中有没有数据,如果断线,会马上有一个错误返回,这样就可以认为断线了。
      

  2.   

    能说清楚点么
    我刚才是弄这个东西
    很多不明白,我现在是同步的,还是单线程,怎么感觉你说的是异步socket的呢
      

  3.   

    哎呀
    打错了
    我想问的是要不要弄成多线程少了个 多 字
    我不想开多线程啊
    感觉传h_socket句柄很烦
      

  4.   

    你用的是mfc?
    如果是mfc,不是有定时器消息么?
    如果不是mfc,那你也应该可以设置超时时间的啊
      

  5.   

    是MFC,本来以为可以把csocket弄成异步的,加一个超时处理,接受完数据再改回同步
    感觉太变态了
    还是用定时器算了
    我现在去试试~~~
    谢谢大家帮忙呵