Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在子进程中获取QTcpServer端口的最佳方法?_Qt_Qtcpsocket_Qtcpserver - Fatal编程技术网

在子进程中获取QTcpServer端口的最佳方法?

在子进程中获取QTcpServer端口的最佳方法?,qt,qtcpsocket,qtcpserver,Qt,Qtcpsocket,Qtcpserver,假设我们不想为TCP服务器使用固定端口号,那么在子进程中检索QTcpServer正在侦听的端口号的最佳方法是什么?到目前为止,我一直在尝试以下两种方法: 在主进程中启动一个QTcpServer,并将子进程中TCP服务器的端口发送到父进程的TCP服务器。这是可行的,但很麻烦 将子进程中的qtcserver的端口号打印到stdout,并从子进程读取标准输出,以获取父进程中的端口号 有没有我忽略的另一个明显而干净的解决方案?您的子进程是否有任何类型的conifg文件?它从哪里获取端口?该端口由qt

假设我们不想为TCP服务器使用固定端口号,那么在子进程中检索
QTcpServer
正在侦听的端口号的最佳方法是什么?到目前为止,我一直在尝试以下两种方法:

  • 在主进程中启动一个
    QTcpServer
    ,并将子进程中TCP服务器的端口发送到父进程的TCP服务器。这是可行的,但很麻烦
  • 将子进程中的
    qtcserver
    的端口号打印到
    stdout
    ,并从子进程读取标准输出,以获取父进程中的端口号

有没有我忽略的另一个明显而干净的解决方案?

您的子进程是否有任何类型的conifg文件?它从哪里获取端口?该端口由
qtcserver
随机选择,让它侦听端口0。优点是它将始终侦听可用端口。可能使用共享内存?这是非常不传统的,您希望父进程创建服务器,并且在创建子进程时,该端口已可供子进程使用(假设您在Unix进程中使用fork()。