Chat Programm erstellen in Java?

Entey2001  17.02.2024, 22:26

Du meinst sowas wie ein Chat-Room?

Julzz2007 
Beitragsersteller
 17.02.2024, 22:33

Ja, genau!

3 Antworten

Mit Java kannst du auch ein Chatprogramm erstellen.

Für den Start wäre (wie üblich) eine Planungsphase nicht verkehrt. Halte zuerst fest, wie sich dein Programm beschreiben lässt: Welche Features gibt es, wo soll das Programm laufen, wie sieht die Oberfläche aus, etc. Ermittle darauf aufbauend die notwendigen Komponenten sowie ihre Struktur (in welcher Art hängen sie zusammen) und schau, welche Ressourcen du benötigst. Sofern ein Chatverlauf gespeichert werden soll, wäre beispielsweise eine Datenbank praktisch.

Ich würde wohl eine webbasierte Lösung wählen. Für das Backend könntest du Spring oder JakartaEE einsetzen. Webclients könnten via WebSockets mit dem Server kommunizieren. Du könntest an der Stelle entweder mit Vaadin arbeiten, einem JS-Framework wie React, Vue, ... oder du belässt es bei VanillaScript. Einen Desktop-Client wiederum könntest du gut mit JavaFX kreieren.

Ja das geht, dafür müsstest du dich mit sockets beschäftigen. Ich finde auch dass das ein gutes Einstiegsprojekt ist, anders als FaTech, solange du dich auf das interne Netzwerk beschränkst. Ich habe das ganze schonmal in C# gemacht, dass ging mit wenigen hundert Zeilen Code und ich habe viel dabei gelernt.
Ich würde eine Aufgabe für die erste Version zwei Java Programme erstellen:
Erstelle einen Server und einen Client.
Der Client soll drei Argumente haben: Server IP, Server Port und Benutzername.
Der Client muss eine Verbindung zum Server über die ip und port herstellen können und Nachrichten über einen socket schicken und über noch einen socket empfangen.
Der Server muss die verschiedenen Clients entgegennehmen und die gesendeten Nachrichten an alle Chatroom Clients über ihren Benutzernamen verteilen.
Sachen wie Verbindungsabbruch etc. kannst du dann in den nächsten Versionen einbauen.
Ich würde auch nicht verschiedene Programmiersprachen mischen, sondern erstmal alles in Java machen. Das gelernte kann man später auf alles Mögliche anwenden.

Ich wollte mal fragen, ob es möglich wäre und wie ich da anfangen sollte

Ja, es ist möglich. Ich würde nur nicht unbedingt Java dafür benutzen, aber die Entscheidung liegt bei dir. Wenn du Java nutzen willst, dann tu das. Für dein Vorhaben würde vermutlich NodeJS ausreichen und das würde ich dir auch empfehlen. Vielleicht auch mit TypeScript statt JS. Es scheint auch, dass du bisher nicht so viel Erfahrung hast, weshalb ich dir erst mal dazu rate, ein wenig so zu programmieren, bevor du so etwas angehst. Was du wissen musst, ist Datenbanken, Netzwerktechnologien (TCP / UDP) → Abstrahierende Techniken, wie WebSocket usw. und wie man Programmiert allgemein. Das Problem, welches ich sehe, du weißt nicht, wo du anfangen sollst. Das ist schlecht. Fang vielleicht lieber erst mal mit einem kleineren Projekt an, um das zu lernen, bevor du mit etwas Großem startest. Ich sage nicht, dass du das Projekt verwerfen sollst. Auf keinen Fall. Nur erst mal mit etwas anderem starten und experimentieren.