如何让套接字服务器仅接受一次

时间:2018-08-06 23:36:17

标签: c linux

我非常头痛。

如果存在许多套接字客户端并且只有一个套接字服务器的情况,我该如何使服务器仅接受他收到的第一个connect()命令,并使其他客户端的所有其他connect()失败?我在Linux btw中使用C

我真的很想这个问题。换句话说,如何使客户端识别“ 嘿,此IP的端口号很忙,我可能需要尝试另一个。

我的老师告诉我,如果我只允许一个客户端连接到服务器,而另一个客户端最近连接到相同的ip,则我会收到超时错误。但是,我只是找不到错误在哪里。 两个客户端中的两个connect()函数均返回0。

也许我误解了老师的话,但是由于程序没有崩溃并且函数没有返回负数,我在哪里可以找到它?

非常感谢。

1 个答案:

答案 0 :(得分:0)

在您的listen()呼叫中,尝试将0或1的值用于积压。

我还没有尝试过,但是手册页声称额外的连接会出现ECONNREFUSED错误。

在调用accept以使您的实际套接字到达第一个客户端后立即关闭监听器。否则,另一个客户端可以排队。