2


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

想法:
每个时钟都使用UDP广播(广播,因为我不知道PC的IP)。PC 获得第一个数据集(时间),从那时起只查看来自该时钟的数据集。(不要被时钟之间的微小时差混淆)

Clocks=Clients:
- socket
- 绑定到端口 1234
- sendto(broadcast,'1234')

PC=Server
- socket
- 绑定到端口 1234
- recvfrom(data,client_addr) //从第一个接收到的数据中提取 client_addr
- connect(client_addr) //只从这个客户端接收数据
- recvfrom()

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

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

问候

4

1 回答 1

2

1:这是正确的方法吗?

是的。

还是有更好的选择?

想不出一个副手。

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

使用SO_REUSEADDR.

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

是的。

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

不。

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

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

于 2013-01-02T04:34:29.073 回答