Ich habe vor, einen Chat zu schreiben, wobei der Enduser keinen Chatclienten auf seiner lokalen Maschine installieren muss, vergleichbar mit dem Yahoo-Chat. Es sollen aber nur Chatpartner miteinander Chatten können, welche sich geaddet haben, und eine Nachricht soll nur für den jeweiligen Buddy sichtbar sein. Meine Frage ist nun folgende: Ich habe vor dies in JAVA zu schreiben, meine Idee ist die, dass ich eine Serversocket-Klasse programmiere, und diese lauscht dann auf die verschiedenen Clienten, und leitet jeweils die Nachricht an den betreffenden Chatbuddy weiter. Anbei etwas Code um das zu veranschaulichen, was ich vorhabe:
Ist dies ein gangbarer Weg? Wenn nein, wie soll ich die Sache am besten angehen? Wenn ja, wie ist es möglich zu erreichen, dass die Nachricht an den richtigen Chatpartner verschickt wird?
Code:
import java.io.*; import java.net.*; public class MainServer{ static void schreibeNachricht(Socket socket, String nachricht) throws IOException { PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); printWriter.print(nachricht); printWriter.flush(); printWriter.close(); } public static void main(String[] args){ try { ServerSocket serverSocket = new ServerSocket(87); while (true) { Socket clientSocket = serverSocket.accept(); //Der Chatpartner beginnt auf einer UI zu chatten, und diese ist dann der Client, welcher sich zu dem auf dem selben Host (localhost) laufenden Server verbindet. String nachricht = leseNachricht(clientSocket);//Diese nachricht wird dann über einen Outputstream weitergeleitet an den jeweiligen Chatpartner. } }catch (Exception e){ e.printStackTrace(); } } }
Comment