3

我想编写一个可以在不同计算机上运行的应用程序,并且需要像“utorrent”(点对点)一样相互通信。这个应用程序只会发送短信。

我怎样才能做到这一点?我的意思是向互联网上的远程计算机发送一条消息?

我有一个网站,开始时每个应用程序都可以向它发送一些信息,并在其他计算机上查找其他应用程序的信息(使用 PHP),但我不知道如何通过互联网寻址一台计算机并将数据直接发送到该计算机。我可以用 PHP 找到 IP 地址,但它是路由器(ISP)的 IP 地址。

消息如何到达计算机?我想知道如何寻址每台计算机?

我的大脑真的卡在这里,我真的很感激任何帮助。谢谢。

4

1 回答 1

5

在对等网络中,没有用于将数据从一个客户端传输到另一个客户端的集中式服务器,在这种情况下,客户端必须能够同时充当服务器和客户端。这意味着您要么必须像大多数现代 Torrent 客户端一样使用 UPnP,它处理路由器中的端口转发,要么您必须手动将端口转发到路由器中的计算机。

中央服务器(如种子跟踪器)通常用于使客户端知道彼此的存在并告诉他们在哪里连接。这就是您的 PHP 脚本的用武之地,尽管 PHP 可能无法提供最有效的方法,假设您将它与网络服务器结合使用以通过 http 协议提供数据。

至于实际的文本通信,您可以使用 Indy 套接字库。我找到了这个例子,基本上它展示了如何做到这一点:http ://www.ciuly.com/delphi/indy/indy-10-client-server-basic-demo/

于 2012-06-02T16:05:59.327 回答