【发布时间】:2014-06-30 12:26:57
【问题描述】:
我正在用一个 PHP 远程服务器作为跟踪器在 Delphi XE5 中开发一个 P2P 应用程序,以列出客户端套接字。如果客户端的 NAT 决定关闭/阻止它在发送到 PHP 远程服务器的第一条消息中创建的随机端口,我担心使用 UDP 打孔 会失败。
所以我知道如何从客户端(用 Delphi 编写)使用 NAT 进行更长时间的持久端口配置。我不希望我的用户需要知道如何访问路由器并自己配置端口转发。
我是否可以这样做并使用服务器仅在没有 PHP-P-H 的情况下存储套接字,并确保至少在 Delphi 的应用程序运行时端口将保持打开状态?
如果我决定从远程服务器使用 UDP 打孔,如果没有其他用户直接连接到它(P2P),NAT 是否会保持对用户本地 PC 开放的端口足够快?
如果我用 UDP 打开那个端口,之后我可以使用 TCP 吗?
Obs:Delphi XE5 可以编译到 Windows 32 和 Android,所以我需要一个非 Windows Only 解决方案。
【问题讨论】:
-
我刚刚发现我想要的这个叫做UPNP。因此,处理它的组件应该已经存在。