Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde.

HappyMajor

Neues Mitglied
Hey Leute,
Ich hab ein echt großes Problem. Ich bastel gerade an einem Chat/Server Programm rum und soweit so gut funktioniert auch schonmal das connecten und das schicken einer Nachricht. Jetzt wollte ich zum Testen den Client mit Nachrichten zuspammen um die Verbindung zu testen, doch irgendwie kriegt mein Client keine Nachricht.
Nur wenn ich davor eine JOptionPane-Nachricht ausgebe und sie bestätige, bekommt mein Client die Nachricht.
Hier hab die JOptionPane Nachricht kommentiert, damit ihr seht welche ich meine.
Hier der Code:

Java:
private static Runnable streamThread = new Runnable()
	 {
                public void run()
		{
			while(true)
			{
				if(!(socketList.isEmpty()))
				{
					for(int i = 0; i < socketList.size(); i++)
					{			
			     		try 
						{
							Socket connection = socketList.get(i);
								
							ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream());
								
							output.writeObject("\n LOL \n");
							output.flush();
							
							if(connection.isClosed())
							{
								JOptionPane.showMessageDialog(null, "Client closed connection", "Info", JOptionPane.INFORMATION_MESSAGE);
							}
						} 
						catch (IOException e) {
							JOptionPane.showMessageDialog(null, "ERROR: " + e.getMessage(), "ALARM", JOptionPane.ERROR_MESSAGE);
						}					
					}
				}
				else
				{
					JOptionPane.showMessageDialog(null, "Socketliste leer", "Info", JOptionPane.INFORMATION_MESSAGE); // Wenn ich diese Nachricht rausnehme, bekommt mein Client nicht mehr die "LOL" Nachricht.
				}
			} 
		}
	};

Hier ist es etwas ordentlicher, wenn man Textwrapping oben links ausschaltet.

[Java] FEHLER - Pastebin.com
 
Zuletzt bearbeitet:

HappyMajor

Neues Mitglied
Ich hatte eine Antwort bei StackOverflow bekommen, weil ich dringend Hilfe benötige, damit ich weiter machen kann.
Doch ich weiß nicht, ob ich sie wirklich richtig verstanden habe:

The documentation for getOutputStream says:

Closing the returned OutputStream will close the associated socket.

And that is the problem. You create an ObjectOutputStream, but don't keep a reference to that object around. As this object gets garbage collected, it will call close() which will close the socket's output stream.

Same problem with the InputStream.

You could, for example, create a class that contains your socket and input and output stream and store that in your map instead of just the socket. That way you can re-use the streams.

Also sobald ein Stream geschlossen wird, wird auch der Socket geschlossen. Und dann meint er, dass ich zwar ein OutputStream erstellt habe aber ohne eine Referenz auf das Objekt herum,- was meint er damit?

Jetzt habe ich einfach mal sein Tipp befolgt und eine Klasse(Connection.class) erstellt, wo ich die Streams, Sockets und den Username lager. Sobald ein Client nun eine Verbindung aufgebaut hat, wird eine Instanz der Klasse Connection erstellt mit dem Socket, Output-,Inputstream und dem Username. Doch sobald ich die Instanz verwenden möchte und z.B writeObject(); verwende, wird mir eine NullPointerException ausgegeben und das bedeutet ja, dass gar nichts in der Instanz enthalten ist.

Connection.class : [Java] Connection.class - Pastebin.com.
Hier wird die Instanz erstellt, sobald jemand joint: [Java] Here i create the Connection instance - Pastebin.com
Hier versuche ich die Instanz zu verwenden: [Java] Do something - Pastebin.com
 
Zuletzt bearbeitet:

MR_UNIX

Bekanntes Mitglied
Auch wenn es nur indirekt mit deinem Problem zu tun hat: warum machst du dir eine extra Klasse, die die für die Verbindung benötigten Objekte halten soll, greifst dann aber nicht auf sie zu?

Du holst dir In- und Outputstream, schreibst was in den Output Stream und erstellst erst dann das Connection Objekt. Ich glaube zwar nicht, dass das ein Problem ist, allerdings ist es konzeptionell halt sehr fraglich. Weiterhin nutzt du ObjectOutputStream und ObjectInputStream, scheinst aber nur Strings schreiben zu wollen. Dafür gibt es die Writer-Klassen in Java, bspw. den PrintWriter oder BufferedWriter und die Gegenstücke - Reader - wie BufferedReader.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
F Server für Java Applikationen Netzwerkprogrammierung 16
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
S Java Chat Server Netzwerkprogrammierung 8
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
X Mit Java eine Applikation auf einem anderen Windows Rechner (Windows Server 2008) starten Netzwerkprogrammierung 1
F Socket Java Server mit Android App, Antwort vom Server an App Netzwerkprogrammierung 5
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
C Kostenloser Java-Server? Netzwerkprogrammierung 25
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
P FTP Server mit Java, möglich ? Netzwerkprogrammierung 4
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
F Java SMTP Server Netzwerkprogrammierung 9
J HTTP Java Client / Server Internet - Webshare ?! Netzwerkprogrammierung 9
S Socket Java Server StreamCorruptedException Netzwerkprogrammierung 7
L C# WCF Server und Java Client? Netzwerkprogrammierung 2
N Socket Java server c# client problem Netzwerkprogrammierung 7
P Java Programm als Dienst auf Server Netzwerkprogrammierung 11
M client server in java Netzwerkprogrammierung 4
P Java Web Server Netzwerkprogrammierung 3
D Umwandlung von Java WebStart zu Java Server Pages Netzwerkprogrammierung 6
W Terminal-Server (Windows 2003) und Java Netzwerkprogrammierung 9
E java.net.SocketException: Unexpected end of file from server Netzwerkprogrammierung 2
H Mit Java ein JPG auf einem Server öffnen. Netzwerkprogrammierung 7
I Java Client - C Server Netzwerkprogrammierung 8
H Java.nio Server, Java.io Client Netzwerkprogrammierung 3
A Java-Programm auf einem Server laufen lassen Netzwerkprogrammierung 9
R Kommunikationsproblem zwischen JAVA-client und C-Server Netzwerkprogrammierung 5
M Java Server mit verschiedenen Kommunikationsmöglichkeiten Netzwerkprogrammierung 6
E Java Server via Swing offline setzen Netzwerkprogrammierung 4
M Java XML-RPC Server - PHP XML-RPC Client ? Netzwerkprogrammierung 8
F Java Client-Server-Client Verbindung Netzwerkprogrammierung 9
J Server soll Zugriff auf Java Programm ermöglichen Netzwerkprogrammierung 3
R Java Applikation als Client ,Servlet als Server: Problem? Netzwerkprogrammierung 3
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
N eigener Java-Server => PHP einbauen Netzwerkprogrammierung 67
S Kommunikation Fortran <-> Java auf Client-Server-Archi Netzwerkprogrammierung 2
S MySQL, PHP, Perl Support in einem Java HTTP Server? Netzwerkprogrammierung 7
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
P Chat in Java Netzwerkprogrammierung 3
C java.net.ConnectException: Operation timed out? Netzwerkprogrammierung 2
T curl request in java umwandeln Netzwerkprogrammierung 4
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben