我需要在wspconnect调用send和recv方法,我发现send调用是可以成功的,
但是recv调用却一直阻塞在那里(实际上有数据到达的),请教是什么问题?
急!急!!急!!!

解决方案 »

  1.   

    你怎么认为一定有数据来,建议你再读之前使用select或者poll测试以下,这样的应用就有超时控制了,不会阻塞在那里傻等^-^
      

  2.   

    哈哈~~~~~~~这里面牵连很多的问题,I/O的操作、提供者的操作,你先用注册表记下你现在的提供者的位置,然后,用你做的DLL insert 到上里面,现在你知道你原来的提供者了,你就可以调用了。
    你只要在WSPSend、WSPSendTo、WSPRecv、WSPRecvFrom中加入自己的拦截程序就行了,至于操作完成没有完成,你要用重叠I/O and 完成I/O了!!
      

  3.   

    估计你send只是返回了!没有成功!你仔细看看错误值!
      

  4.   

    省略代码
    int WSPAPI WSPConnect()
    {
       NextProcTable.lpWSPConnect();
       send();
       recv();
    }
    send调用返回值是正确的,不过用sniffer看没有发出数据。所以recv也就一直阻塞了。
    应该如何调用呢?
      

  5.   

    因为我不是单单要拦截send recv sendto recvfrom 调用,而是在connect后,想加入自己的用户认证部分,上层应用不知道的,如果认证失败connect需要返回失败信息。
      

  6.   

    LuckFox:
    能不能详细说一下。