Ich versuche, einen Server mit Java zu erstellen. Meine Frage ist: Wie mache ich, wenn ich mehrere Benutzer gleichzeitig habe? Die Antwort lautet: Multithreading. Aber ich weiß nicht wie.Muti - Thread-Webserver in Java
Zum Beispiel, wenn zwei Clients gleichzeitig verbunden sind, und ein Server (wer 2 * Nummer): Wenn der Client1 "50" an den Server und der Client 2 "10" sagt, ist der Server soll "100" an den ersten Client und "20" an den zweiten zurückgeben. Aber ich bin mir nicht sicher, ob mein Code funktioniert.
Server-Seite:
public class Server {
public static void main(String[] args){
ServerSocket socket;
try {
socket = new ServerSocket(4444);
Thread t = new Thread(new Accept(socket));
t.start();
} catch (IOException e) {
e.printStackTrace();
}
}
class Accept implements Runnable {
private ServerSocket socketserver;
private Socket socket;
private int nbrclient = 1;
public Accept(ServerSocket s){
socketserver = s;
}
public void run() {
try {
socket = socketserver.accept();
in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
String message = in.readLine();
System.out.println(message);
out = new PrintWriter(socket.getOutputStream());
out.println("Pong");
out.flush();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Client-Seite:
public class Client {
public static void main(String[] zero) {
Socket socket;
BufferedReader in;
PrintWriter out;
try {
socket = new Socket(InetAddress.getLocalHost(),4444);
out = new PrintWriter(socket.getOutputStream());
out.println("Ping");
out.flush();
in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
String message = in.readLine();
System.out.println(message);
socket.close();
}catch (UnknownHostException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
Wenn Sie irgendwelche Ideen haben (wie Multi-Threading zu tun ist und wie zu überprüfen, ob mein Code funktioniert, wie laufen zwei Clients. java und überprüfen, ob das Multi-Threading arbeitet)
Haben Sie einen "Haupt" -Port, auf dem Ihr Server zuhört. Wenn der Client eine Verbindung zum Server herstellt, starten Sie einen neuen Thread mit einem neuen Port und weisen Sie den Client an, den neuen Port zu verwenden. – DwB