java - java中的多个服务器TCP

标签 java tcp tcpserver java-server

我正在编写一个网络多人游戏,玩家使用他们自己的客户端和服务器处理所有数据处理...

我已经用一台服务器完成了游戏的编写。

我想要做的是,我将有一个主服务器,它将发送有关不同游戏房间的信息,玩家将能够连接到他们想要的游戏房间。

我的想法是,如果玩家点击设置新游戏房间,客户端将告诉服务器设置新游戏,这将创建一个新服务器并将有关该服务器的信息添加到主服务器。

我将辅助服务器保留为 ArrayList...

String line = in.nextLine();

if (line.equalsIgnoreCase("new game")) {
servers.add(new SecondaryServers(secondaryPort)); // starting secondary server
secondaryPort++; // this is to keep track of port number
System.out.println(i + " secondary server(s) started"); // printout in main server's console
 }

当我那样做时,它会在第一时间启动一个新服务器,但它永远不会进入打印到控制台的状态。

请帮我从主服务器创建新服务器 :)

最佳答案

我认为有一个 ServerSocket.accept() 方法是从 SecondaryServers 中调用的。 accept() 是一种阻塞方法,因此您应该在新线程中启动 SecondaryServers

关于java - java中的多个服务器TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765608/

相关文章:

java - 对于开发人员来说,GraalVM 19.3 的 CE 版本和 EE 版本有什么区别?

java - 在自定义 ArrayList 中仅添加一次项目

ruby - 适用于 Ruby 的强大 TCP 服务器?

java - TCP 服务器以数据包结构发送文件(到非 Java 客户端)

java - 访问服务器计算机上的数据库的 Android 应用程序

java - 返回数字的下一个排列

c - socket()中 "protocol"为SOCK_DGRAM或SOCK_STREAM时是否需要指定 "type"?

C# TCP/IP 客户端发送从串行端口接收到的数据 - 建议

python - UDP 和 TCP 始终为一个客户端使用相同的 IP?

c# - 从 NetworkStream 读取到分隔符