我想连接两个客户端(通过 TCP/IP 套接字)。客户端可以使用中间服务器发现彼此。一旦客户端发现彼此,服务器就不应该有任何参与。
我对此做了一些研究,发现很多人建议JXTA
。但我想自己从头开始创建协议(因为将来我可能也必须使用 WebSocket 实现相同的协议(当我的客户端是浏览器时))。目前,我的客户端可以是桌面应用程序或移动应用程序。
我的问题是:
客户端如何在服务器上发现彼此?如果服务器向彼此发送客户端的全局 IP 地址,该信息是否足以创建点对点连接?如果客户端位于同一 LAN 网络而服务器位于不同 WAN 上怎么办?
客户端有动态IP地址。即使有活动套接字,他们的 IP 也会突然改变吗?
点对点连接对于非连续数据的传输是否可靠(例如在聊天应用程序中)?
[注意:点对点连接是指通过将其中一个客户端作为临时套接字服务器来建立客户端-服务器 TCP/IP 套接字连接(使用 Java)]
提前致谢。
1)当客户端连接到服务器时,他们必须通知服务器他们将为来自其他客户端的传入连接保持开放的端口号。服务器将知道客户端的IP地址。然后服务器需要将这些详细信息传达/发送给另一方/客户端。客户的实际位置没有任何区别。如果两个客户端位于同一网络上,网络路由器将找到它们并缩短它们的通信路径。
2) 动态 IP 地址在活动连接期间不能更改 - 如果更改,连接将被断开,并且两个客户端都必须在 1) 中通过服务器重新启动连接
3) Yes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)