我正在使用c语言和linux平台进行套接字编程,我的要求是让服务器只监听两个或三个客户端。怎么可能?
答案 0 :(得分:3)
通过在listen()调用上指定第二个参数来实现 我假设您使用的是TCP协议 来自手册页:
int listen(int sockfd, int backlog);
backlog参数定义队列的最大长度 等待的 sockfd的连接可能会增长。如果连接请求到达队列时 如果已满,客户端可能会收到错误消息,并显示ECONNREFUSED或 如果底层协议支持重传,则可以忽略该请求 以便稍后重新尝试连接成功。
所以对于两个客户 - 你打电话听:listen(fd, 2);
建议阅读:https://beej.us/guide/bgnet/html/multi/syscalls.html#listen
答案 1 :(得分:0)
达到限制时关闭侦听套接字,并在其中一个客户端断开连接时再次打开它。
或的
保持打开但在极限时停止接受连接。
listen()
的backlog参数与此任何内容无关,与此处的其他答案和评论相反。