这是我要做的事情:
我在网络上有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不起作用,因为只有一个应用程序然后获取数据而且我不知道它将是哪一个)
此致
答案 0 :(得分:2)
1:这是正确的方法吗?
是
或者有更好的选择吗?
想不到一个副手。
2:如果我想在PC上使用多个应用程序来获取时间数据,我该怎么办?
使用SO_REUSEADDR
。
我可以复制代码并使用吗?
是
我的印象是,端口1234现在已被第一个获取绑定的应用程序阻止。
没有
(我想SO_REUSEADDR不起作用,因为只有一个应用程序然后获取数据而且我不知道它将是哪一个)
错误的猜测。为什么要猜呢?为什么不试试呢?比猜测更可靠,也比在这里提问更快。