Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制基于IP的传入TCP连接_C_Sockets_Networking_Tcp - Fatal编程技术网

限制基于IP的传入TCP连接

限制基于IP的传入TCP连接,c,sockets,networking,tcp,C,Sockets,Networking,Tcp,C中的套接字是否提供了基于IP限制套接字传入连接数的方法 例如,为了防止一个客户端IP滥发连接,有没有办法限制一个IP可以连接到套接字的次数 或者像这样的东西需要定制吗?插座中没有类似的东西。你需要定制解决方案,最好在防火墙中考虑它。 < P>我感觉你正在谈论的真正意图是节流,即对于特定的客户机/连接,在给定的时间内只允许固定数量的数据包。这听起来比允许/不允许更多连接更现实 大多数现代语言都提供某种支持,如java或c,但不提供c 然而,这里有一个优雅的方法来实现它。我自己也在生产代码中使用过

C中的套接字是否提供了基于IP限制套接字传入连接数的方法

例如,为了防止一个客户端IP滥发连接,有没有办法限制一个IP可以连接到套接字的次数


或者像这样的东西需要定制吗?

插座中没有类似的东西。你需要定制解决方案,最好在防火墙中考虑它。

< P>我感觉你正在谈论的真正意图是节流,即对于特定的客户机/连接,在给定的时间内只允许固定数量的数据包。这听起来比允许/不允许更多连接更现实

大多数现代语言都提供某种支持,如java或c,但不提供c

然而,这里有一个优雅的方法来实现它。我自己也在生产代码中使用过它


标准套接字API中没有这方面的内容,不。使用标准API,服务器代码唯一能做的就是
accept()
客户端连接,检查其IP,然后在需要时关闭连接


在Microsoft的WinSock API中,函数确实有一个回调,在从服务器队列接受连接之前调用该回调。回调函数可以决定接受连接、拒绝连接或将其留在队列中。

为什么要询问?你在考虑什么样的服务器?我相信,
connect
-ing比
send
-ing花费更多。了解C10K问题,它在防火墙中更容易实现,例如linux上的iptables。