Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通用java服务器/客户端教程_Java_Sockets_Client Server - Fatal编程技术网

通用java服务器/客户端教程

通用java服务器/客户端教程,java,sockets,client-server,Java,Sockets,Client Server,我正在开发一款多人纸牌游戏,需要客户端相互通信或使用通用服务器。我从来没有这样做过,所以我需要一些指导或教程如何实现这一点 到目前为止,我已经创建了这个游戏的本地单人版…Sun有一个很好的完整的代码示例 到目前为止,我已经创造了本地,单人版的游戏 太好了,我建议继续使用本地多人版本的游戏(即使它是由同一个“终端”控制的) 从那里,您可以探索远程调用这些方法。它应该比创建多玩家版本和添加网络更简单 RMI所做的是抽象网络连接,并允许您简化远程对象调用的执行(也就是说,它简化了使用套接字编写自己的协

我正在开发一款多人纸牌游戏,需要客户端相互通信或使用通用服务器。我从来没有这样做过,所以我需要一些指导或教程如何实现这一点

到目前为止,我已经创建了这个游戏的本地单人版…

Sun有一个很好的完整的代码示例

到目前为止,我已经创造了本地,单人版的游戏

太好了,我建议继续使用本地多人版本的游戏(即使它是由同一个“终端”控制的)

从那里,您可以探索远程调用这些方法。它应该比创建多玩家版本和添加网络更简单


RMI所做的是抽象网络连接,并允许您简化远程对象调用的执行(也就是说,它简化了使用套接字编写自己的协议)

RMI更复杂。在开始使用RMI之前,您需要了解一些概念,例如扩展远程、RemoteExceptions等。此外,运行由RMI支持的应用程序需要一些步骤,例如启动RMI注册表和设置策略文件

如果您是初学者,请先从简单的套接字开始。它们更容易理解,但编写代码有点长。RMI更容易编码,但有点难以理解

对于插座:

对于RMI:


作为后续行动。。。如果我将对象前后传递给另一个对象(比如将卡片对象传递给经销商对象),我是否必须使用序列化?@Ali:当然,尽管如果你要编写自己的协议,你可以只发送一些标识符,如AS(黑桃王牌)或1H(红桃1号)跳过序列化过程。我都没听说过这个。。。这看起来确实简单多了。。参考我上面关于序列化的评论,RMI是实现这一点的一种更简单的方法吗?实际上它们是结合在一起的。通过编写自己的协议(如上面的答案所示),您可以决定是否使用可序列化对象。问题(或机会)是,您还必须编写指令来调用另一端的方法,并返回结果。使用RMI(代表远程方法调用),您不需要编写逻辑代码来调用方法或将结果从客户端返回到服务器,只需调用它们即可。关于序列化,一般来说相当简单(您只需实现
Serializable
接口)