有用过HTTP API的吗?
我将这个函数HttpReceiveHttpRequest放到线程中的时候总是返回6,信息如下//
// MessageId: ERROR_INVALID_HANDLE
//
// MessageText:
//
//  The handle is invalid.
//
#define ERROR_INVALID_HANDLE             6L
但是这个句柄是正确的,通过线程参数传进来的this指针得到的。sdk的例子是阻塞的,我要用完成端口来做非阻塞的
在这里碰到了难题了
请各位大侠不吝赐教,给予解惑,感激不尽,谢谢。。

解决方案 »

  1.   

    这个估计只能在当前线程创建,当前线程使用吧.要使用完成端口?你没socket句柄怎么使用完成端口?
      

  2.   

    不用socket也可以用完成端口的
    在http api中有一个handle开始我在主线程中调用HttpReceiveHttpRequest,并且将这个设为非阻塞的当我用ie来连接的时候在完成端口的工作者线程是可以收到数据的,并且可以返回正确的结果不过当第二次请求到来的时候就出了问题关键是HttpReceiveHttpRequest这个函数的非阻塞模式和OVERLAPPED这个结构
    以及完成端口之间的关系我还没能搞得很清楚对于一般的阻塞模式是没有问题的另外这个函数在主线程中调用是不会有这样的问题,但是放到工作者线程中就报句柄是无效的很奇怪
      

  3.   

    在工作线程中DuplicateHandle一下试试
      

  4.   

    不用完成端口可以成功并且在主线程中都可以成功这个很奇怪,就是不知什么原因造成的先用DuplicateHandle这个试一下thank you!