gpt4 book ai didi

java - 我的 java 服务器在代码中间停止

转载 作者:行者123 更新时间:2023-12-01 07:16:03 24 4
gpt4 key购买 nike

由于某种原因,我的服务器在代码的标记区域停止运行,但我不明白为什么。

import java.net.*;
import java.io.*;

public class SlickServer{
public static void main(String[] args) throws IOException {

int MAX_PLAYERS = 3;
int playerNum = 0;
Player[] players = new Player[MAX_PLAYERS];
players[0] = new Player(25,25);
players[1] = new Player(125,125);
players[2] = new Player(225,225);
ServerSocket serverSocket = new ServerSocket(40);
boolean listening = true;

while(listening){
System.out.println("Waiting to connect with: " + playerNum);
new ClientThread(serverSocket.accept(), players, playerNum).start();
//stops here.
System.out.println("Connected with: " + playerNum + " Now incrementing");
playerNum++;
System.out.println("Incremented to: " + playerNum);
}



serverSocket.close();
System.exit(0);
}
}

这是主题:

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.*;
import java.io.*;

public class ClientThread extends Thread implements Runnable{
Socket acceptedSocket;
Player[] players;
int playerNum;

public ClientThread(Socket acceptedSocket, Player[] players, int playerNum){
super("ClientThread");
this.acceptedSocket = acceptedSocket;
this.players = players;
this.playerNum = playerNum;
}

public void run(){
try{

Socket clientSocket = acceptedSocket;
System.out.println("Accepted. Now creating I/O.");
ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
System.out.println("I/O with: " + playerNum + " working.");
out.writeInt(playerNum);
out.flush();
}

catch(Exception e){
e.printStackTrace();
System.exit(1);
}


}

public void start(){
run();
}

}

最佳答案

“客户端线程”中的代码实际上在主线程上运行。

那是因为您编写了自己的 start 实现,但实际上并没有生成新线程。

你不想这样做。

关于java - 我的 java 服务器在代码中间停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1924993/

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