Ich habe ein paar Tutorials gelesen und herausgefunden, wie Sie Threads für Multithreading-Socket-Server verwenden können. Ich habe eine Server-Klasse mit der ClientServiceThread-Klasse für Clients erstellt. Wenn der Thread eine Nachricht vom Client erhält, wie kann ich mit der Server-Klasse auf diese Informationen zugreifen?So verwenden Sie Daten von Clienthandler-Threads in Java
Hier ist mein Server Thema:
public void run(){
game = new Game();
try{
serverSocket = new ServerSocket(port);
System.out.println("Server Started");
}
catch (IOException e){
System.out.println(e);
}
while(true) {
try {
Socket clientSocket = serverSocket.accept();
ClientServiceThread cliThread = new ClientServiceThread(clientSocket);
threads.add(cliThread);
cliThread.start();
} catch(IOException e) {
e.printStackTrace();
}
}
}
Hier ist meine ClientServiceThread Klasse:
public void run() {
boolean m_bRunThread = true;
System.out.println("Accepted Client Address - " + socket.getInetAddress().getHostAddress());
try {
out = new ObjectOutputStream(socket.getOutputStream());
in = new ObjectInputStream(socket.getInputStream());
while(m_bRunThread) {
String clientCommand = in.readUTF();
System.out.println("Client Says :" + clientCommand);
if(!gameStarted) {
out.writeUTF("GAME_ALREADY_STARTED");
out.flush();
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
EDIT 1: Im Grunde bin ich auf den Client-Handler-Threads auf Befehle/Nachrichten abhören. Ich möchte sie später auf meinem Server bearbeiten, damit ich mein Game-Objekt damit manipulieren kann.
Können Sie genauer angeben, was Sie von ClientServiceThread an Server zurückgeben möchten? –
Ich möchte Nachrichten von den Clients erhalten und sie später für das von mir erstellte Spielobjekt verarbeiten. –