我想在我登录电脑时自动启动 mc-server。我注册了一个公共 DNS,该 DNS 全天候可用。但是该域上没有运行任何程序,因为它只是用于为我的 mc-server 提供更清晰的 IP。
我的服务器可以运行的端口由我的路由器转发。当我为 Minecraft 设置的端口上有传入流量(实际上可以是任何流量,但这并不困扰我,因为据我所知,这是一个无用的随机端口)时,我的路由器会发送一个魔术包来 WOL 我的计算机,并在启动时启动我的 mc-server。
我想在我的电脑上使用相同的机制来启动我的服务器当我的计算机已处于唤醒状态时,该端口上有传入流量。但我不知道它是如何工作的或要使用什么软件/设置。
我想我需要监视我指定端口上的流量,但我不知道如何自动执行所有这些操作并在有人尝试连接时运行脚本。我在网上读到了很多模糊的东西,其中包括一些docker daemon magic 甚至 portqry 或 netstat 用法,但我不太明白这些。如果还有更多内容,请告诉我。
我遇到的另一种可能性是,一旦服务器关闭,我就在我的 Minecraft 端口上运行一个 Web 服务器,然后通过 Javascript 或类似的东西启动我的服务器?
请记住,我不希望这与我的路由器和计算机的 WOL 设置发生冲突。
TL;DR:当指定端口有传入流量时如何启动脚本?
关于上下文:我已经在 arqade 论坛上问过这个问题,但是评论中有人指出,在这里问这个问题更合适。我想这是真的,因为游戏服务器的上下文并不重要。
答案1
此功能在 Windows 中不可用,因此您需要在此端口上创建一个监听器程序,该程序将在收到某些特定输入文本时执行某些操作。
为了帮助您入门,这里有两种可能性:
博客文章 - 创建 TCP/UDP 侦听器 包含 PowerShell 脚本的源代码,该脚本监听端口并将收到的文本消息输出到控制台。您可以轻松地根据需要对其进行调整。
端口侦听器 是 Visual Studio 的一个开源项目。