UDP套接字,选择多个客户端之一

时间:2013-01-02 03:39:45

标签: sockets udp

这是我要做的事情:
我在网络上有4个时钟和一台PC。我(PC)希望从任何时钟中获得时间。

这个想法:
每个时钟都使用UDP广播(广播,因为我不知道PC的IP)。 PC获取第一个数据集(时间),从那时起只查看来自此时钟的数据集。 (不要因时钟之间的微小时差而感到困惑)

时钟=客户端:
- 插座
- 绑定到端口1234
- sendto(广播,'1234')

PC =服务器
- 插座
- 绑定到端口1234
- recvfrom(data,client_addr)//从第一个接收的数据中提取client_addr
- connect(client_addr)//仅接收来自此客户端的数据
- recvfrom()

1:这是正确的方法吗?或者有更好的选择吗?

2:如果我想在PC上使用多个应用程序来获取时间数据,我该怎么办?我可以复制代码并使用它吗?我的印象是,端口1234现在被阻止从第一个获得绑定的应用程序。 (我想SO_REUSEADDR不起作用,因为只有一个应用程序然后获取数据而且我不知道它将是哪一个)

此致

1 个答案:

答案 0 :(得分:2)

  

1:这是正确的方法吗?

  

或者有更好的选择吗?

想不到一个副手。

  

2:如果我想在PC上使用多个应用程序来获取时间数据,我该怎么办?

使用SO_REUSEADDR

  

我可以复制代码并使用吗?

  

我的印象是,端口1234现在已被第一个获取绑定的应用程序阻止。

没有

  

(我想SO_REUSEADDR不起作用,因为只有一个应用程序然后获取数据而且我不知道它将是哪一个)

错误的猜测。为什么要猜呢?为什么不试试呢?比猜测更可靠,也比在这里提问更快。