连接两个客户端套接字
假设Java有两种套接字:
- 服务器套接字“服务器套接字”
- 客户端套接字或只是“套接字”
想象一下两个过程的情况:
X = 客户端
Y = 服务器
服务器进程Y:有一个“ServerSocket”,即侦听TCP端口
客户端进程X:通过“套接字”向Y发送连接请求。
Y:然后该方法返回一个新的客户端类型“Socket”,
当它发生时,两个Socket被“互连”,accept()
所以:客户端进程中的套接字,与服务器进程中的套接字连接。
然后:通过套接字 X 读取/写入就像通过套接字 Y 读取/写入一
样。现在,两个客户端套接字相互连接!!
但。。。
如果我在同一进程中创建两个客户端套接字,并且我想让它们“互连”,该怎么办?
...甚至可能?
假设如何在不使用中间 ServerSocket 的情况下使两个客户端套接字互连?
我通过创建两个线程来解决它,用于连续读取A和写入B,另一个用于读取B和写入A...
但我认为这可能是一个更好的方法...(那些耗费全球能量的线程在客户端-服务器方法中不是必需的)
任何帮助或建议将不胜感激!谢谢
编辑:
应用程序示例:“可以将现有的服务器应用程序转换为客户端应用程序”,例如 VNC 服务器,一个客户端套接字连接到 VNC 服务器,并创建另一个客户端套接字(连接到中间服务器),然后应用程序将两个客户端互连,从而使 VNC 服务器成为客户端应用程序!然后,不需要公共IP。
VNCServer---MyApp---> |middle server|<---用户