Heimnetzwerkchatprogramm: Fehler im Code

Status
Nicht offen für weitere Antworten.

Gayson

Bekanntes Mitglied
Hallo!

Habe mir folgende Seite mal angeschaut (von Maks empfohlen) und habe daran ein Chatprogramm fürs Heimnetzwerk angelehnt.
http://www.kl.unibe.ch/sec2/gymbield/unterricht/faecher/informatik/Java/Streams.htm

Habe einen "Chatserver" und einen "Chatclient" mit jeweils der gleichen Oberfläche: Ein Textfeld zur Eingabe der Nachricht (eingabe), eine Textarea, wo der Chat ausgegeben wird (chatfenster)
Habs aber noch nicht geschafft, den Code so einzubinden, dass man vom Client zum Server mehrere Nachrichten schicken kann, obwohl die erste immer ankommt.


Hier der relevante Quelltext vom Chatserver:

Code:
	ServerSocket ss = new ServerSocket(1100);
	Socket s = ss.accept();
	PrintWriter aus = new PrintWriter(s.getOutputStream(),true);
	BufferedReader = new BufferedReader(new InputStreamReader(s.getInputStream()));
	String eingang = ein.readLine();

		try {
			while (!eingang.equals("bye")) {
				if (eingang.length()!=0){
					chatfenster.append(eingang);
					eingang="";
				}
			}
			if (eingang.equals("bye")) {
				ein.close();
				aus.close();
				s.close();
			}
		} catch (IOException e){}

Noch kurz zur Erklärung meiner Gedankengänge:
Habe in die while-Schleife noch ein if reingesetzt, da sonst die vom Client gesendete Nachricht endlos wiederholt wird, (im chatfenster) da is bestimmt ein Fehler drin...

Und hier der vom Chatclient:

Code:
	Socket s = new Socket("192.168.0.10",1100);
	PrintWriter aus = new PrintWriter(s.getOutputStream(),true);
	BufferedReader = new BufferedReader(new InputStreamReader(s.getInputStream()));
	String ausgang = aus.readLine();

	public void keyReleased (KeyEvent evt) {
		int  x = evt.getKeyCode();
		if (x == KeyEvent.VK_ENTER) {
			ausgang=eingabe.getText();
			appendtext(ausgang);
			aus.println(ausgang);
		}
		repaint();
    }
 

meez

Top Contributor
Das ServerSocket.accept() muss in einer while (true) Schleife sein...
Am Besten öffnest du für jede Anfrage einen Thread, bzw. implementierst in deinem Code das runable Interface...
 
G

Guest

Gast
implementierst in deinem Code das runable Interface...

Was soll das heißen?

Habe das Problem gelöst, doch jetzt habe ich noch ein anderes Problem:

Als Chatfenster habe ich eine JTextArea verwendet.
Nun sollen jedoch einige Textfragmente Fett bzw. in anderen Farben erscheinen.
Gibt es eine html-Anzeige für die JTextArea?

Hab auch schon ein bissl gegoogelt, mir sind da noch JEditorPane und JTextPane untergekommen.
Sind das nur Container oder sind die ein Ersatz für für eine Textarea?

Trotzdem schon mal vielen Dank!
 

meez

Top Contributor
Runnable interface = threads.

JEditorPane und JTextPane sind die Swing Komponenten von TextArea...;)

Gibt es eine html-Anzeige für die JTextArea?
Nein...soviel ich weiss nur für die JEditorPane (Du musst das HyperlinkListenerInterface implementieren)...
 

KSG9|sebastian

Top Contributor
Code:
class deineKlasse extens JEditorPane implements HyperLinkListener{

setType("text/html");
.
.
.

}

so müsst das ungefähr gehen..
 
G

Guest

Gast
Habs immer noch nicht ganz verstanden, was das JEditorPane ist...

Ist das sowas wie JFrame, muss ich also anstatt verwenden?
Und ersetzt das JEditorPane die Textarea komplett oder muss ich die mit editorpane.add(textareaname) hinzufügen, wie das ja sonst bei Containern ist??

Ich Blick hier irgendwie überhaupt net durch, entschuldigt bitte...
 
R

Roar

Gast
JEditorPane ist ein swing komponent, so wie jeder andere swing kopmonent auch ( Die alle mit 'J' anfangen).

JEditorPane ist kein Container sondern soll deine textarea ersetzen.

btw: wieso fängst du eigentlich mti sowas schwierigem an an übst dich nicht erst in sowas?
 
G

Guest

Gast
Okay, soweit hab ich das jetzt kapiert.

Wenn ich jetzt JEditorPane benutzen möchte, gibt es da so was wie setText(), appendText() oder muss der Text in einer externen html-Datei stehen, die dann vom Programm ausgelesen wird?
Und sorgt dann der implementierte Hyperlinklistener dafür, dass, immer wenn sich die html-Datei ändert, auch die Anzeige des JEditorPane ändert?


btw: wieso fängst du eigentlich mti sowas schwierigem an an übst dich nicht erst in sowas?

Hab schon ein Buch über Java gelesen und einen einfachen Texteditor geschrieben, irgendwie musste es ja weiter gehen... Und ich glaube durch solche Fragen lerne ich am Besten..
 
G

Guest

Gast
Du hast mir wirklich sehr weitergeholfen, habe jetzt zum Teil auch schon den JEditorPane in meinen Code eingebaut.
Nur noch ein kleines Prob habe ich:

Code:
String chatfensterinhalt;
chatfensterinhalt = jeditorpanename.getText();
jeditorpanename.setText(chatfensterinhalt + eingang);

Dieser Code müsste doch eigentlich dafür sorgen, dass an den Text, der im JEditorPane steht, der String eingang angehangen wird, oder?
Der Kompiler meldet keinen Fehler, habe ich da irgendwo einen gedanklichen Fehler drin?

Ich denke, danach seid ihr erlöst, dann werdet ihr wieder erst in einem neuen Thread von mir hören ;)

Vielen Dank!!!!
 
G

Guest

Gast
Hab nochmal darüber nachgedacht, kann es evtl sein, dass in diesem Fall der Inhalt vom chatfensterinhalt "<html><head></head><body></body></html>" ist?
Und das dann chatfensterinhalt+eingabe dann z.B. "<html><head></head><body></body></html>hallo ich bin der Gayson" ist?
Wenn ja, wie kann ich denn Text an einen JEditorPane anhängen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
X Netty TLS Authentifizierung Fehler Netzwerkprogrammierung 1
OnDemand API Aufruf besser steuern, wie Fehler vermeiden Netzwerkprogrammierung 20
V Ich finde den Fehler nicht... Netzwerkprogrammierung 2
A sporadischer Fehler beim Schreiben auf NAS Netzwerkprogrammierung 2
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
F HTTP Website parsen Fehler 403 Netzwerkprogrammierung 2
M Socket Verschlüsselte Kommunikation - Fehler Netzwerkprogrammierung 1
M Wo ist mein Fehler ? o: Netzwerkprogrammierung 4
D Komischer Fehler Readline() Netzwerkprogrammierung 7
CookieSoft Fehler bei Socket Netzwerkprogrammierung 4
B RMI & Mysql -> Fehler bei der Compilierung Netzwerkprogrammierung 4
C Fehler bei PDF-Download Netzwerkprogrammierung 5
M ActiveMQ Anfänger-Fehler Netzwerkprogrammierung 3
N Socket Fehler bei Streams Netzwerkprogrammierung 2
F Socket ImageIcon über Socket --> Fehler Netzwerkprogrammierung 14
M chat als applet umgeschrieben - unbekannter fehler :( Netzwerkprogrammierung 2
B Socket Daten empfangen funktioniert nicht richtig - wo liegt der Fehler? Netzwerkprogrammierung 7
L NullPointerException...finde den Fehler nicht Netzwerkprogrammierung 10
E einfache Frage: wie Fehler untersuchen mit Tomcat Netzwerkprogrammierung 5
R Fehler bei RMI in Verbidung mit JDBC Netzwerkprogrammierung 6
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
R Server - Client - Fehler? Netzwerkprogrammierung 3
M SOAP Messaging Fehler Netzwerkprogrammierung 10
J RMI Fehler beim Proxy Netzwerkprogrammierung 2
B Fehler 401 bei http GET Netzwerkprogrammierung 2
H RMI Fehler: access denied Netzwerkprogrammierung 10
J Vom BufferedReader lesen -> hängt ohne Fehler,ohne Except Netzwerkprogrammierung 2
C irc client: Fehler 451 Netzwerkprogrammierung 12
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
D JavaMail: HTML Code einer Mail Netzwerkprogrammierung 9
M RMI Code Frage: Netzwerkprogrammierung 4
R RMI Stub Code Netzwerkprogrammierung 2
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
W Socket Client ermitteln//Code inside Netzwerkprogrammierung 2
S RMI - dynamisch Code nachladen Netzwerkprogrammierung 5
V RMI: code wird einfach übergangen ? Netzwerkprogrammierung 3
M HTTP response code: 401 ; ?aber im browser ist es abrufbar? Netzwerkprogrammierung 5
A mein Code compiliert nicht! Netzwerkprogrammierung 2
A HTML code auslesen klappt nicht ganz Netzwerkprogrammierung 3
M html Code darstellen Netzwerkprogrammierung 2
bummerland Google liefert HTTP response code 403 Netzwerkprogrammierung 2
R Code-Konvertierung bei Socket-Anbindung Netzwerkprogrammierung 1

Ähnliche Java Themen


Oben