我正在使用 Winsock 编写 TCP 服务器应用程序。连接到我的客户端(我没有来源,因此无法进行更改)的行为如下:如果它连接并且我关闭连接(因为它是不受欢迎的客户端),它将立即重新连接。因此,如果有一个客户想要连接到我但我不想与之交谈(即我称之为不受欢迎的客户),我会在我的 accept() 调用中发疯.
我想找到一种方法来防止我的 accept() 调用疯狂旋转。如果只有 1 个所需的客户端,我可以将我的侦听套接字绑定到该客户端的 IP 地址而不是 INADDR_ANY。但是,唉,有超过 1 个所需的客户。据我所知,当该组的大小大于 1 时,无法仅允许来自一组所需 IP 地址的连接。
我看过 WSAAccept。不幸的是,看起来这只会将疯狂的旋转转变为回调。
有没有办法拒绝不涉及 accept() 唤醒和返回的尝试连接(因此导致所有这些疯狂的旋转)?