C 自动分配端口

发布于 2024-09-01 22:09:33 字数 286 浏览 4 评论 0原文

我只是想知道如果未提供特定端口号,如何使用 C 自动分配空闲端口(并查看使用了什么)。

例如,我正在使用这个:

struct sockaddr_in address;
address->sin_family = AF_INET;
address->sin_addr.s_addr = INADDR_ANY;
address->sin_port = htons( port );

但是我如何替换sin_port分配并让C自动为我分配?

谢谢!

I just wanted to know how to use C to automatically assign a free port (and see what was used) if a specific port number is not provided.

For example, i'm using this:

struct sockaddr_in address;
address->sin_family = AF_INET;
address->sin_addr.s_addr = INADDR_ANY;
address->sin_port = htons( port );

But how can I replace the sin_port assignment and let C automatically assign for me?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇俏 2024-09-08 22:09:34

只需使用值0

address->sin_port = 0

或者,如果您也不关心使用哪个界面,则可以完全跳过绑定步骤。

Just use a value of 0.

address->sin_port = 0

Alternatively, you can completely skip the binding step if you don't care which interface you use, either.

戏蝶舞 2024-09-08 22:09:33

Matt 已经回答了“如何分配空闲端口”部分(使用 sin_port = 0)。

要回答第二部分,即“如何查看使用的内容”,请使用 getsockname()

Matt has already answered the "how to assign a free port" part (use sin_port = 0).

To answer the second part, i.e. "how to see what was used", use getsockname()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文