我想限制IP地址上超过4个客户端的设备访问。
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);
您可以使用sockIdx
变量查看当前已连接了多少个客户端。
而不是将accept
返回的套接字直接存储在数组中,而是将其存储在临时变量中。如果sockIdx
大于3
,则不允许新客户端连接,因此向客户端发送消息并关闭套接字。否则将插座存储在数组中并增加sockIdx
。