如何避免必须设置端口转发

问题描述

我正在用Java编程一个胖客户端,该客户端允许发送文件。 因此,从具有公共IP(所谓的pip1)的LAN 1,具有本地IP(lip1)的第一个胖客户端(fc1)通过WAN将文件发送到LAN 2(pip2)上的第二个胖客户端(fc2)。 我在端口8081上使用协议TCP / IP。因此,只有在我将LAN1的路由器上的lip1的端口8081和LAN2的路由器上的lip2的端口8081进行端口转发时,它才起作用。

这太可怕了:我想您已经了解我对网络方面的知识并不满意。 :s 你有什么建议?我使用 java.net.ServerSocket

解决方法

嗯,我想我对该主题的研究还不够。 :s我在这里发现了很多想法:

,

也许在传输过程中我需要一台真正的服务器。每个胖客户端在启动时都会创建第二个线程,并与此服务器建立连接。等待服务器响应的阻塞连接。没有超时。服务器只有在从另一个胖客户端接收到发送文件的请求时,服务器才会响应(使用文件的数据)。
丑陋。但是强制性的,我错了吗? My proposal diagram