消息计算机结束 IP/Port

Message Computer Over IP/Port

我遇到了一些麻烦,很难用语言解释这个问题,但我会尽力而为。

我想从另一台计算机向另一台计算机发送一条简单的消息。没有什么花哨。我做了一些研究,很多消息来源说要创建一个脚本来访问 Windows 中的内置 MSG.EXE 函数(我目前在 Windows 10)但是,这只是似乎在连接到 LAN 的机器上工作。

根据我收集到的信息,我需要创建一个网站来处理请求:从计算机 A 获取消息并将其发送到计算机 B。我可以这样做吗(在 Powershell 或 VBS 中)而无需创建一个专门针对它的网站?

我想要的: 我希望计算机 A 向计算机 B 发送纯文本消息。最好,当消息成功发送时,将出现一个消息框,上面写着“发件人:(任何人)和消息。使用 MSG.EXE 做了我想要的它可以做到,但是它只适用于 LAN 连接的设备。我可以使用静态 IP 使它工作吗?如果可以,怎么做?

附加信息:

这两台电脑不在局域网内,而是连接在互联网上。

计算机 A(发送方)和计算机 B(接收方)各有一个静态 IP 地址,但显然可以更改。

每台计算机都有可用的端口。

如果需要,我有一个 Raspberry Pi 可以充当服务器 "middle man"。

非常清楚:有很多帖子都在谈论通过 LAN 发送消息。我不打算通过 LAN 发送消息。任何帮助将不胜感激。

你对你为什么想要它以及你想要它做什么很含糊;主要问题是家庭互联网连接是为连接出去的东西而建立的,没有什么东西可以连接进来。

修复:

  • Port forwarding 你说“传入连接转到这台或那台计算机。

  • 建立双方 "connect out" 的服务,即您在 Internet 的某个地方托管了一个网站。一台计算机连接出去发送消息,另一台连接出去检查消息。

除此之外,下一个问题是知道在互联网上连接到哪里。

修复:

  • 硬编码结束点。静态 IP 对此有好处,因为 the definition of a static IP 是一个不会改变的地址。神秘的是,您拥有可以更改的静态 IP,并且您认为 'obvious'。 (??)

  • 您注册域的 DNS,计算机会查看域名以查找连接位置。您使用当前 IP 更新 DNS。

  • 您使用 a free DNS service on someone else's name 的 DNS,并且您的服务侦听器会随着其 IP 更改而更新它。

而且在那之后,大多数人的 computers/laptops/phones 大部分时间都处于关机或低功耗睡眠模式,并且他们的互联网连接相对不可靠,因此任何随机消息都可能不会得到回复。

修复:

  • 使用正规的网站服务
  • 运行 永远在线的计算机就是该服务
  • 处理离线和消息不稳定
  • 使用像电子邮件这样的存储转发系统,它像电子邮件和即时消息一样排队和重试

get message from Computer A and send it to Computer B. Could I do this (In Powershell or VBS) without having to make a site specifically for it?

是的。速答:选择一个端口,配置站点B的modem/router将端口转发给计算机B。在计算机B的防火墙上打开该端口。在计算机 B 上写入 some kind of TCP socket listener,在计算机 A 上写入发件人,连接到站点 B 的 public IP 地址。

长答案:然后享受编写您自己的消息传递协议、错误处理、消息身份验证等的乐趣。

备选方案:执行相同的操作,但转到您的 rPi。让它听。不在 powershell(遗憾)或 vbscript(幸运)中,并让它通过 HTTP/JSON 提供消息,两台计算机都使用 invoke-webrequest 或 invoke-restmethod 和 post/get 它们定期轮询。