关于验证套接字端口的可访问性和可访问性的主题已有otherquestions。检查C/C++中的开放端口
如何寻找一个端口在C/C++中动态侦听?
的基本过程,我试图完成的是:
- 客户开始
- 客户端找到开放的端口XYZ并监听它。
- 客户端通过UDP数据报向服务器发送基本的'我在这里'消息到端口信息
- 客户端和服务器可以通信。
我知道你可以完成这样的事情,如果你选择一个任意的端口号,并尝试bind ing。如果失败,请增加数字并重试,直到获得成功的“绑定”。
有没有更好的方法来做到这一点?这似乎有点哈克。
在消息内发送端口号会破坏NAT防火墙后面的客户端,所以不要这样做。只需让服务器使用消息到达的端口即可。 – 2010-06-16 20:22:25
这是哪种操作系统? – 2010-06-16 20:29:18
@David Windows现在,但希望它最终也可以移植到Linux。 – 2010-06-16 20:31:22