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