2014-03-12 28 views
0

我想限制IP地址上超過4個客戶端對設備的訪問。限制IP C++上的客戶端數量

struct sockaddr_in peerAddr; 
SOCK_LEN_TYPE peerAddrLen = sizeof(peerAddr); 
// Yes, socket is free, try to accept a connection on it 
connectionSocketArr[sockIdx] = accept(listenSocket, (struct sockaddr *) &peerAddr, 
            &peerAddrLen); 
+0

因此'sockIdx'應該在零到三的範圍內? (這個問題是給你的一個提示。) –

+0

sockIdx不會限制客戶端的數量,但它會爲選擇的調用設置文件描述符 – user1586695

回答

0

您可以使用sockIdx變量來查看當前連接的客戶端數。

不是直接在數組中存儲由accept返回的套接字,而是將其存儲在一個臨時變量中。如果sockIdx大於3則新客戶端不允許連接,因此向客戶端發送一條消息,聲明並關閉套接字。否則將套接字存儲在陣列中並增加sockIdx