java - C++/Java 套接字自动端口分配

标签 java c++ sockets port

我有一个服务器 (Java) 和一些客户端 (c++),它们通过套接字连接。 我想自动设置端口。 假设 IP 已知。

在 Java 方面,我可以:

ServerSocket s = new ServerSocket(0);

现在我在服务器上有一个随机的空闲端口。

我如何在 C++ 端知道服务器监听的端口是什么?

最佳答案

我认为这是不可能的,如果你想与服务器建立连接,你必须知道服务器在哪个端口监听,有像 nmap 这样的程序可以显示服务器中打开的端口列表,但是服务器可以同时有很多开放的端口 那么,你怎么知道你的服务器开放的端口是什么?在任何情况下,调用外部工具、读取和解析其输出都太慢且效率低下。为什么需要随机端口服务?

其他选项可以在服务器端调用 s.getLocalPort() 获取打开的套接字,并通过 UDP 将其发送给网络中的任何监听节点,并重新编程客户端端收听广播,当它收到消息时,检查它是否是端口号并使用该端口连接到服务器。

关于java - C++/Java 套接字自动端口分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119701/

相关文章:

java - 如何在 xp 和 windows 7 上运行 SWT 应用程序

java - 设置编号。 JFreeChart 中绘图的 MilliSecond

java - Spring创建Bean异常

c++ - (Dependency Walker) 缺少函数的显式类型

c++ - 将 QPixmap 移动到 QLabel 但不复制

python - 如何正确管理最大数量的已连接客户端-Python客户端服务器TCP

Java 泛型类型删除 : when and what happens?

c++ - 从 Objective-C 访问静态 C++ 字段

c - 503服务暂时不可用

python - 如何在python中终止正在运行的线程?