gpt4 book ai didi

tcp - 发现空闲端口

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

我用 erlang 编写了一个服务器应用程序,用 C# 编写了一个客户端。它们通过 3 个 TCP 端口进行通信。端口号是硬编码的。现在我想动态地做到这一点。这是我第一次做网络编程,所以请原谅我无法使用正确的术语:-D

我想做的是创建一个主管,它会在先前已知的端口(比如 10000 或其他端口)上接受来自客户端的 TCP 连接,然后找到 3 个空闲端口,在这 3 个端口上启动服务器应用程序并告诉客户端这些端口号,以便客户端可以连接到服务器。

我的特殊问题是:如何找到 3 个未使用的端口? (澄清:使用哪个模块:fun()来查找空闲端口?)

我的一般问题是:我确定这种东西(一个服务器分配端口和重定向客户端)是非常常见的网络编程问题,应该有一堆(特定于 erlang 的或一般的)资源,但是我只是不知道用谷歌搜索出来的术语。

最佳答案

根据 Erlang 文档 here ,如果 gen_tcp:listen/2 函数的 Port 参数为 0,则操作系统会将任何可用端口分配给套接字。然后可以使用 inet:port/1 检索后者。

因此你可以这样做:

{ok, Listen} = gen_tcp:listen(0, [Options]),
Port = inet:port(Listen).

关于tcp - 发现空闲端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448185/

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