udp echo服务器中有多个客户端

时间:2014-12-03 08:29:38

标签: c udp udpclient

我有一个UDP echo客户端和服务器程序。当我尝试连接多个客户端以使用不同的计算机连接到服务器时,我得到了积极的响应,即我能够将我的服务器连接到多个客户端。

所以,我的问题是,当我打破ctrl + c打破服务器时,我想打印当时与服务器关联的所有客户端的IP地址。 我该怎么做?我知道如何在单个客户端连接到服务器时打印IP地址,但如何打印多个客户端?

1 个答案:

答案 0 :(得分:1)

没有任何内置机制可以做到这一点。 UDP是无连接的,因此套接字不会“记住”与之通信的人。

要打印服务器与您通信的所有客户端,您需要自己跟踪它们。您可能需要一个集合(如果您不想自己构建集合,可以在C中找到集合的一些开源实现),或者甚至可以使用简单的链接列表,具体取决于您的情况。在每个recvfrom之后,将客户端添加到集/列表中。处理完每个请求后,从集/列表中删除客户端。

然后你需要设置一个处理程序来对^ C作出反应。在其中,您只需打印设置/列表。