C中的套接字是否提供任何方式来限制基于IP的套接字的传入连接数?
例如,为了防止一个客户端IP发送垃圾邮件连接,有没有办法限制IP连接到套接字的次数?
或者这样的事情必须定制吗?
答案 0 :(得分:1)
套接字中没有类似的东西。您需要自定义解决方案,最好考虑在防火墙中进行此操作。
答案 1 :(得分:1)
我觉得你所谈论的真正意图是节流,即对于特定的客户端/连接,在给定时间内只允许固定数量的数据包。这听起来比允许/禁止更多连接更实际的使用场景。
大多数现代语言都提供某种支持,例如java或c#,但不提供c。
但是,这是一种实现它的优雅方法。我自己在生产代码中使用过它。
答案 2 :(得分:1)
标准套接字API中没有任何内容,没有。使用标准API,服务器代码唯一能做的就是accept()
客户端连接,检查其IP,然后在需要时关闭连接。
对于Microsoft的WinSock API,WSAAccept()
函数确实有一个在从服务器队列接受连接之前调用的回调。回调函数可以决定是接受连接,拒绝连接,还是将其保留在队列中。