【发布时间】:2011-03-04 15:58:07
【问题描述】:
关于验证套接字端口的可访问性和可访问性的主题已经有otherquestions。
如何在 C/C++ 中寻找一个动态监听的端口?
我要完成的基本过程是这样的:
- 客户端启动
- 客户端找到打开的端口 XYZ 并监听它。
- 客户端通过 UDP 数据报将基本的“我在这里”消息发送到带有端口信息的服务器
- 客户端和服务器可以通信。
我知道如果你选择一个任意的端口号并尝试binding,你可以完成这样的事情。如果失败,请增加数字并重试,直到成功“绑定”。
有没有更优雅的方法来做到这一点?这似乎有点骇人听闻。
【问题讨论】:
-
在消息中发送端口号会破坏 NAT 防火墙后面的客户端,所以不要这样做。只需让服务器使用消息到达的端口即可。
-
@David Windows 现在,但希望它最终也能移植到 linux。
标签: c++ c sockets network-programming