套接字连接请求有问题

时间:2011-03-31 14:46:01

标签: sockets vb6

我在一个activex exe中封装了一个套接字通信。

此套接字对象是从客户端应用程序创建的,并将向客户端提供事件通知。

当引发ConnectionRequest事件时,将接受连接,并通过CONNECTED(在套接字对象中定义)事件通知客户端。 到目前为止一切正常,但在通过Accept方法接受上一个连接后,再次使用SAME RequestId引发ConnectionRequest。

当我尝试关闭套接字并重新获取请求时,会生成运行时错误 说“运行时错误10038,描述符不是套接字”!

有人遇到过这个问题吗?请提出一些解决方法。

提前致谢。

PS:我正在使用TCP协议。

1 个答案:

答案 0 :(得分:0)

我非常确定requestID值是侦听状态下套接字的套接字描述符,所以当你只有一个监听器时它不会改变是有意义的(这是最常见的。)

这些是与流程相关的,因此您无法在流程之间有意义地传递它们。要实现此目的,您可能需要调用WSADuplicateSocket()函数。我从来没有试过这个,所以你可能会尝试尝试 - 但我相信当ConnectionRequest处理程序退出而不接受请求时,Winsock控件会发送拒绝。