这程序象是移植的,不适于windows,最好使用windiows的特性

解决方案 »

  1.   

    怎么可能超时呢!
    阻塞Socket是CPU密集型的,你的线程不可能有时间
    再去处理消息,尽管已经有很多的WM_TIMER在队列中。
    用多线程!
      

  2.   

    因为Timmer在消息队列中的优先级最低,所以如果有优先级高的,windows就会扔掉
      

  3.   

    谢谢各位了,还想请教一下,多线程中, 我发现我新起的一个线程,计时器怎么还是没有起作用呀
    我用的是  DelayTime是新线程执行的函数。UINT CCSApi::DelayTime(LPVOID pParam)
    {
    //AfxMessageBox("begin Settimer") ;
    SetTimerRetVal = ::SetTimer(NULL, 1, Myusec/1000, TimerProc);
    while ( 1 )
    {
       int i = 0 ;
       int j = i ;
       }
    //AfxMessageBox("delay time ") ;
    return 1;
    }VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
    {
    AfxMessageBox("Timeout!!") ;
    }怎么time out 对话框没有出来呢
      

  4.   

    先调用select函数设置超时后在调用接收操作
      

  5.   

    不是这样地!!!
    要用多线程。
    你也可以直接设置Socket的超时时间
      

  6.   

    to: cAndCpp(一个数),SecretGarden(天堂鸟)
       怎么设置接收的超时时间呢,: cAndCpp(一个数)说的select函数,怎么用呢,麻烦详细点说说,谢谢了
      

  7.   

    各位兄弟,我给了分呀, csdn没有响应,抱歉了