【发布时间】:2016-05-12 13:52:06
【问题描述】:
有一个概念,也许是一个 hack,我一直在困扰自己很长时间。我的想法是,TCP 连接套接字本质上是一个变量。它包含有关您的目标的一些信息,这些信息由程序内存中的某些特定字节表示。并且字节可以通过互联网发送到其他计算机。
这个概念应该允许公共服务器在两台私人(防火墙或路由器后面)计算机之间建立直接连接。 google了一会儿,发现这个概念确实存在,叫Hole punching。
它与代理确实不同。看看 - 这是典型的代理/中继连接:
数据流经公共服务器。绿圈代表设备间的socket连接,蓝线是数据流向。
现在服务器向设备 B 发送套接字 A 是什么,反之亦然?
突然之间,两台设备有了彼此的“地址”,可以互相发送任何信息:
我的问题是:PHP 脚本是否允许获取共享该套接字信息所需的信息?如何防止套接字在 PHP 时间限制后 30 秒后被终止?
【问题讨论】:
标签: php hole-punching