我正在为一个类(class)做一个项目,我们正在创建一个可以通过 LAN 与 2-4 名玩家一起玩的游戏。尽管在我们愚蠢地决定它不会那么难搞清楚之前,我们的小组成员都没有做过任何 Java 网络。无论如何,让网络正常工作的工作落在了我身上,但我完全不知道该怎么做。我在网上找不到任何教程,除了非常基本的东西,比如将字符串从单个客户端传递到服务器。所以我有几个问题。
首先,我如何将多个客户端连接到服务器。我是否需要为每个创建一个新的 ServerSocket
?
其次,是否有任何易于使用的库可以为我提取其中的一些内容?
我知道这些可能是非常基本的问题,但我真的读了很多书,但仍然一无所获。
最佳答案
Akka的 remote actors可能有帮助。这是一个基本的客户端-服务器连接示例:
// server code
class HelloWorldActor extends UntypedActor {
public void onReceive(Object msg) {
getContext().replySafe(msg + " World");
}
}
remote().start("localhost", 9999).register(
"hello-service",
actorOf(HelloWorldActor.class));
// client code
ActorRef actor = remote().actorFor(
"hello-service", "localhost", 9999);
Object res = actor.sendRequestReply("Hello");
Akka 确实提高了抽象级别,很像 RPC,因此看起来您只是在与本地对象进行交互。它还将有助于并发性和可伸缩性,但在您的情况下这些问题可能不太重要。
关于java - Java 网络让我头疼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238135/