我正在编写一个通过套接字与服务器通信的Android应用程序。该应用程序是一款多人游戏,通过这些套接字将消息(Strings in Java)作为JSON发送。
为了启动游戏,我创建了一个包含“玩家”对象的“组”对象。该组具有ServerSocket
对象,该对象被移动到“播放器”,并且每个设备与其服务器实例“播放器”通信。设备之间的计算和通信在“组”对象中完成。
我的问题是,为了创建一个“组”,我需要一个在端口上运行的ServerSocket
。所以我看到它,对于每个组我需要一个不同的端口。服务器端口数量有限,我认为使用端口不是最佳方式。
有没有其他方法可以实现上述通信?
答案 0 :(得分:0)
每个组都不需要服务器。您只需将组的成员添加到组对象的单独实例中即可。当您想要向发送播放器组中的每个播放器广播消息时,您将迭代发送播放器组所属的组集合,并将消息发送给该组中的每个玩家。您可能不希望向发送播放器发送新状态,除非它的视角发生了变化。然后,您将发送播放器更新为客户端,这样玩家就不会注意到任何输入延迟。