Java 德克萨斯州控股公司的客户机/服务器通信&x27;相对长度单位

Java 德克萨斯州控股公司的客户机/服务器通信&x27;相对长度单位,java,client,communication,Java,Client,Communication,我目前正在用Java编写一个德州Hold'em LAN游戏。我的问题是如何进行客户机/服务器通信 每次在表中发生某些事情时,都需要通知客户机,以便他们可以重新绘制GUI。此外,当玩家出现时,他们需要能够折叠、呼叫等 如何最好地实现这一点?我已经看过回调/RMI,但从我所读到的内容来看,这可能会导致防火墙出现问题(?)我建议使用有关套接字的Java教程: 给出了一个客户机/服务器示例。当您关心防火墙时,最好的方法是使用HTTP,就像使用web浏览器一样。好处是: 该协议是众所周知的 有许多客户

我目前正在用Java编写一个德州Hold'em LAN游戏。我的问题是如何进行客户机/服务器通信

每次在表中发生某些事情时,都需要通知客户机,以便他们可以重新绘制GUI。此外,当玩家出现时,他们需要能够折叠、呼叫等


如何最好地实现这一点?我已经看过回调/RMI,但从我所读到的内容来看,这可能会导致防火墙出现问题(?)

我建议使用有关套接字的Java教程:


给出了一个客户机/服务器示例。

当您关心防火墙时,最好的方法是使用HTTP,就像使用web浏览器一样。好处是:

  • 该协议是众所周知的
  • 有许多客户机和服务器库可用,它们经过了良好的测试
  • HTTP不限于web浏览器。任何程序都可以使用HTTP

缺点是服务器推送消息并不常用。当然,您可以从每个等待服务器数据的客户端打开HTTP连接。

+1。使用HTTP和端口80可以绕过许多防火墙障碍。HTTPS和端口443甚至更好,因为它不太可能被拦截,也不太可能被代理重新格式化。RMI不能很好地使用防火墙,因为它使用临时端口的方式。如果它是一款局域网游戏,你为什么要担心防火墙:)