gpt4 book ai didi

java - 在java中与服务器和客户端websocket正确通信

转载 作者:行者123 更新时间:2023-12-02 12:14:34 25 4
gpt4 key购买 nike

我开发了一个简单的视频游戏,我想使用 websockets 来更新它的多人游戏功能。我想要这个游戏的两个版本。第一个版本作为服务器,另一个版本作为客户端。我想从服务器初始化游戏并等待客户端的 react 。我的第一个问题:是否可以在同一台机器上运行服务器和客户端(提供相同的IP作为输入)?其次,我使用以下代码从服务器端创建套接字:

    try {
serverSocket = new ServerSocket(10007);
}
catch (IOException e)
{
System.err.println("Could not listen on port: 10007.");
System.exit(1);
}

System.out.println ("Waiting for connection.....");

try {
clientSocket = serverSocket.accept();
}
catch (IOException e)
{
System.err.println("Accept failed.");
System.exit(1);
}
System.out.println ("Connection successful");

当我尝试从客户端连接时,似乎整个事情都不起作用,因为我收到消息正在等待连接...。我连接客户端的代码如下:

 String serverHostname = new String("ip");

if (args.length > 0)
serverHostname = args[0];
System.out.println("Attemping to connect to host " +
serverHostname + " on port 10007.");

Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;

try {
echoSocket = new Socket(serverHostname, 10007);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: " + serverHostname);
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: " + serverHostname);
System.exit(1);
}

这可能是什么问题?

最佳答案

您的服务器端代码没问题。这里需要注意一点,ServerSocket.accept(); 方法是一个阻塞调用,这意味着程序执行将在那里暂停,直到客户端连接到它。

其次,我可以从下面的客户端代码的第一行看到一个问题

if (args.length > 0)
serverHostname = args[0];

args[0] 可能不是 IP 地址,我不太确定 java 命令行应用程序的行为方式,但例如在 C++ 中,正确上下文中的 args[0] 始终是程序可执行文件的绝对路径。在java中也可能是这种情况。因此,您可能会传递一个 IP 地址,但实际上会作为 args[1] 传入。

关于java - 在java中与服务器和客户端websocket正确通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46283512/

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