我想编写一个可以在不同计算机上运行的应用程序,并且需要所有计算机像“utorrent”(点对点)一样相互通信。这个应用程序只会发送短信。
我该怎么做?我的意思是向互联网上的远程计算机发送一条消息?
我有一个网站,每个应用程序在启动时都可以向其发送一些信息,并查找其他计算机上其他应用程序的信息(使用 PHP),但我不知道如何通过互联网寻址一台计算机并将数据直接发送到该计算机。我可以用 PHP 找到 IP 地址,但它是路由器(ISP)的 IP 地址。
消息如何到达计算机?我想知道如何对每台计算机进行寻址?
我的大脑真的卡在这里,我真的很感谢任何帮助。谢谢。
在对等网络中,没有集中式服务器将数据从一个客户端传输到另一个客户端,在这种情况下,客户端必须能够同时充当服务器和客户端。这意味着您要么必须像大多数现代 torrent 客户端一样使用 UPnP,它处理路由器中的端口转发,要么您必须手动将端口转发到路由器中的计算机。
集中式服务器(如种子跟踪器)通常用于使客户端知道彼此的存在并告诉他们连接到哪里。这就是 PHP 脚本的用武之地,尽管 PHP 可能无法提供最有效的方法来执行此操作(假设您将其与 Web 服务器结合使用以通过 http 协议提供数据)。
对于实际的文本通信,您可以使用 Indy 套接字库。我找到了这个例子,基本上展示了如何做到这一点:http://www.ciuly.com/delphi/indy/indy-10-client-server-basic-demo/
请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For
X-Forwarded-For (XFF) 请求标头是事实上的标准标头,用于识别通过代理服务器连接到 Web 服务器的客户端的原始 IP 地址。
链接的文章包含重要的安全/信任相关注释。