gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:53:15 25 4
gpt4 key购买 nike

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

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

时钟=客户:
- socket
- 绑定(bind)到端口 1234
- 发送到(广播,'1234')

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

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

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

问候

最佳答案

1: Is this the correct way to do this?



是的。

Or is there a better option?



想不出一个副手。

2: What can I do, if I want more than one application on the PC to get the time-data?



使用 SO_REUSEADDR .

Can I just copy the code and use it?



是的。

My impression was, that port 1234 is now blocked from the first application that gets the bind.



不。

(I guess SO_REUSEADDR won't work because only ONE application then gets the data AND I don't know which one it is going to be)



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

关于sockets - UDP套接字,选择多个客户端之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com