C 自动分配端口
我只是想知道如果未提供特定端口号,如何使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需使用值
0
。或者,如果您也不关心使用哪个界面,则可以完全跳过绑定步骤。
Just use a value of
0
.Alternatively, you can completely skip the binding step if you don't care which interface you use, either.
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()