我正在学习 c++ 套接字编程...服务器程序绑定到套接字并开始侦听连接请求...好的,现在如何列出侦听请求的 IP 地址?我知道我可以在接受连接后获取 IP 地址,但可以说我不想接受来自特定 IP 地址的连接......
问问题
2617 次
3 回答
7
仅在 Windows 上,您可以使用 WinSock2WSAAccept()
函数的条件回调功能在接受连接之前访问客户端信息,甚至在接受连接之前拒绝连接。
于 2012-05-23T22:46:47.733 回答
5
就标准套接字 API 而言,这是无法做到的。在我所知道的所有平台上,系统实际上在应用程序有机会监控未决请求之前接受连接(即用 SYN+ACK TCP 数据报响应) 。
于 2012-05-23T20:25:35.367 回答
3
为了获得最佳性能,这将通过在网络堆栈中进行过滤来解决,但这样做的细节将取决于操作系统(这不是套接字接口的一部分,您的应用程序通常甚至可能没有配置网络的权限以这种方式堆叠。)
另一个机会是在 之后accept
,此时连接已经在 TCP 级别上被接受(CONNECT ACK)。
我不认为你可以在你喜欢的中间阶段做到这一点。然而,无论如何,这与之后做这件事并没有太大的不同accept
。
于 2012-05-23T20:30:53.467 回答