gpt4 book ai didi

linux - 从未绑定(bind)的 UDP 套接字发送到

转载 作者:可可西里 更新时间:2023-11-01 02:51:42 25 4
gpt4 key购买 nike

情况:我需要从某个空闲端口使用 UDP 从客户端进行广播,然后在具有相同编号但 TCP 的端口上接受来自服务器的客户端上的 tcp 连接。这就是为什么我需要在广播之前收听(并绑定(bind))到这个端口。端口不能是常量,因为我可以在一台机器上运行多个客户端。所以这里有一些问题,可以帮助我更清楚地了解这种情况:

  1. 如果我从未绑定(bind)的 UDP 套接字发出 sendto,它是否绑定(bind)到任何空闲端口并且所有下一个 sendto 消息都将从该端口发出,或者每次都会为新消息选择该端口?

  2. 我可以要求系统为我预留一些空闲端口吗? (我需要为UDP和TCP连接预留两个相同编号的端口)

  3. 我确定有一种已知的方法来处理这些情况,它是什么?

最佳答案

1)If I made sendto from unbinded UDP socket, is it binded to any free port and all next sendto messages will go from this port

是的。

or each time the port will be chosen for a new message?

没有。

2) Can I ask system to reserve some free port for me? (I need to reserve two ports with the same numbers for UDP and TCP connections)

这就是发生自动绑定(bind)时发生的情况。您可以通过绑定(bind)到端口号零来明确执行,但这不是必需的。它也不保证您可以将 UDP 和 TCP 绑定(bind)到同一端口号。

3) I'm sure there is a known way to handle these situations, what is it?

你找到了。让自动绑定(bind)发生。

关于linux - 从未绑定(bind)的 UDP 套接字发送到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150192/

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