Dar*_*usz 6 connection networking network-programming tcp
假设我有一个服务器并且客户端连接到服务器。服务器可以通过公共 IP 访问。
我想“转发”连接,以便客户端可以直接相互连接,而无需中间的服务器。
我不知道这是否可能,我自己也找不到办法做到这一点。
其他假设:
我正在寻找一个严格的软件解决方案,而无需重新配置路由器、开放端口等。
我想实现这一点的原因是减少服务器上的负载。一旦两个客户端关联在一起,就没有真正的需要(技术客户端除外)继续使用服务器作为某种代理。直接客户端连接也会减少连接的延迟。
简短的回答是:这是不可能的。
主要问题之一是路由器不知道将来自服务器(或其他客户端)的请求重定向到哪里。仅举一个例子:您有一个路由器,其后面有多个设备(计算机、手机...)。它收到一个请求,但不知道谁想要收到该请求。
有一个解决方法,但它并不可靠(并不总是有效)。如果可能,一些公司会使用它,但如果失败,他们总是有替代方案(例如通过服务器进行通信)。这称为自然冲孔。更多详细信息请参见:http://en.wikipedia.org/wiki/TCP_hole_punching
我不知道你需要什么理由。如果您需要它进行客户端服务器连接,您可以使用长轮询之类的东西,回调......
否则需要设置路由器,或者通过服务器获取路由。
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |