PC.*_*PC. 4 networking p2p client-server network-protocols
我想连接两个客户端(通过TCP/IP套接字).客户端可以使用中间服务器发现彼此.一旦客户发现彼此,就不应该有任何服务器的参与.
我对此做了一些研究,发现很多人都在暗示JXTA.但我想从头开始自己创建协议(因为将来我可能也必须使用WebSockets实现相同的功能(当我的客户端是浏览器时)).目前,我的客户可以是桌面应用程序或移动应用程序.
我的问题是:
客户如何在服务器上发现彼此?如果服务器相互发送客户端的全局IP地址,那么该信息是否足以创建对等连接?如果客户端位于同一LAN网络且服务器位于不同的WAN上,该怎么办?
客户端具有动态IP地址.即使它有一个活动套接字,它们的IP也能突然改变吗?
对等连接是否可靠传输非连续数据(如聊天应用程序)?
[注意:通过点对点连接,我的意思是建立一个客户端 - 服务器TCP/IP套接字连接(使用Java),使其中一个客户端作为临时套接字服务器]
提前致谢.
1)当客户端连接到服务器时,他们必须通知服务器他们将保持打开的端口号以用于来自其他客户端的传入连接.服务器将知道客户端的IP地址.然后,服务器将需要将这些详细信息传送/发送给另一方/客户端.客户的实际位置没有任何区别.如果两个客户端位于同一网络上,则网络路由器将找到它们并使其通信路径更短.
2)动态IP地址在活动连接期间不能改变 - 如果它确实连接将被丢弃,并且两个客户端都必须通过服务器重新启动连接1)
3)是的