0
如何限制每个IP与winsock的连接?
比方说,我想限制他们每IP的20个连接,然后不接受连接,一旦达到极限。通过winsock限制每个IP的连接
我不能想到这样做的逻辑。
我想过在WSAAccept()
上使用callbacks
,并在接受连接之前在每个ip中登录数据库,并将其列在每个连接所做的db数据库中。
[check if column count is <= 20]
return CF_ACCEPT;
}else{
return CF_REJECT;
但是有没有更有效的方法呢?
如何'map'这里工作?这是我第一次听说过这个功能。 – zikdaljin
['std :: map'](http://en.cppreference.com/w/cpp/container/map)不是函数,它是一个包含键/值对的类。您可以使用IP地址作为密钥并使用“int”计数器作为值。当客户端被接受时,将它的IP放在'std :: map'中(如果它不存在),然后增加它的计数器。当客户端断开连接时,递减其IP计数器,并在计数器下降到0时将其从'std :: map'中移除。 –
我可以看到示例用法先生吗? – zikdaljin