代码之家  ›  专栏  ›  技术社区  ›  Paweł Hajdan

如何等待其他进程开始侦听本地端口?

  •  0
  • Paweł Hajdan  · 技术社区  · 16 年前

    我有一个测试驱动程序,它启动一个单独的测试服务器进程。测试服务器进程在本地端口上侦听,准备好后,测试驱动程序运行一个访问测试服务器的测试。

    当前,测试驱动程序反复尝试连接到本地端口(循环一些,休眠一些,重试)。这不是一个最佳解决方案,而且显然不可靠。

    是否可以等待“某人在本地端口上侦听”的事件?尝试连接到早期会导致“端口关闭”错误。

    我想在Windows、Linux和Mac OS X上实现这个解决方案。如果您对这些系统中的任何一个有一些建议,欢迎使用(在每种情况下都可能是特定于系统的)。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Len Holgate    16 年前

    在Windows上,我使用一个命名事件来处理这种事情。

    测试工具可以创建事件,并将事件的名称传递给它启动的服务器;然后,在继续测试之前,它等待将要发出信号的事件。然后服务器连接到事件,初始化自己,一旦准备好接受连接,它就向事件发出信号。

        2
  •  1
  •   Byron Whitlock    16 年前

    好吧,如果启动服务器进程,就可以从服务器截获stdout,对吗?

    所以当套接字准备就绪时,让服务器输出“server started”。驱动程序应该等到服务器将这个字符串发送到stdout,然后尝试连接到服务器端口。

    推荐文章