在套接字编程中如何让服务器监听有限的客户端?

时间:2014-06-10 05:57:31

标签: c linux network-programming

我正在使用c语言和linux平台进行套接字编程,我的要求是让服务器只监听两个或三个客户端。怎么可能?

2 个答案:

答案 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参数与此任何内容无关,与此处的其他答案和评论相反。