gpt4 book ai didi

JAVA - 一个简单的服务器看到客户端的困难

转载 作者:可可西里 更新时间:2023-11-01 02:49:59 25 4
gpt4 key购买 nike

我正在尝试制作一个跨 TCP 网络的简单游戏。

服务器在 Server.java 中做这样的事情来检查连接:

try
{
server = new ServerSocket(port);
System.out.println("Server started on port " + port);

while (true)
{
socket = server.accept();
System.out.println("A new player has joined the server.");
new Server(socket).start();
}
}

并在 Player.java 中创建一个新客户端:

socket = new Socket(hostname, port);

现在,一切正常,但我需要服务器将 Player 的实例添加到数组列表中,并能够向所有这些实例发送特定数据。它们都有 main 方法,因此一台计算机可以只运行服务器并让其他 4 台计算机通过运行 Player.java 连接到它。如果 Player 所做的只是创建一个新套接字,那么服务器应该如何与每个 Player 交互?

最佳答案

我不确定我是否理解了这个问题。

accept 调用将为每个连接的客户端产生不同的返回值(通常表示客户端地址和端口),因此您需要存储它们中的每一个。然后您可以通过套接字进行交互,Sun 有一个 pretty good example in its tutorial :

话虽这么说,但不要让自己头疼,而是考虑一下您对游戏的期望表现。如果您use JMS and ActiveMQ,您可以为自己省去很多麻烦并轻松增加可靠性和可扩展性。用于您的通信,而不是自己弄乱套接字。

花时间编写游戏,而不是进行低级套接字编程,除非您正在努力学习。

关于JAVA - 一个简单的服务器看到客户端的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/743066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com