StringCorruptedException: invalid String header

Status
Nicht offen für weitere Antworten.
A

Alex

Gast
Hi Leute,

ich bastele zur Zeit an einem Messenger fürs LAN. Allerdings bekomme ich immer wenn der Server die Userliste an
den Client sendet eine StreamCorruptedException: Invalid Stream Header beim Client.
Aber vielleicht hat ja jemand von euch sich mit diesem Fehler schon mal rumgeschlagen und kann mir helfen.


Das ist die Funktion die für das Senden der Userliste auf der Serverseite zuständig ist.

Code:
public void sendUserList() {
		
     messageVektor = new Vector();		
     synchronized(messageVektor) {
			
          messageVektor.add("[/User_List]");
		
          for(Enumeration e = m_vectorClients.elements(); e.hasMoreElements();) {
               ClientSocket clientSocket = (ClientSocket)e.nextElement();
								
               try {
                    messageVektor.add(clientSocket.getNickname());			
               }
               catch(Exception ioex) {
                    log("Server(sendUserList|Exception): " + String.valueOf(ioex));
               }		
          }
     
          messageVektor.add("[/End_User_List]");
     }
     
     for(Enumeration e = m_vectorClients.elements(); e.hasMoreElements();) {
          ClientSocket clientSocket = (ClientSocket)e.nextElement();
          try {
               o_stream = clientSocket.getSocket().getOutputStream();
               os = new ObjectOutputStream(o_stream);
               os.writeObject(messageVektor);	
               os.flush();
               log("UserList send");				
          }
          catch(IOException ioex1) {
               log("Server(sendUserList|IOException): " + String.valueOf(ioex1));
          }			
     }						
}


Und das hier ist ein Teil des Client Thread der die Nachrichten annimmt.

Code:
...

public void run() {
     m_client.log("ClientThread run");
     String temp = new String();
     temp=null;
     messageVektor = new Vector();
     String strBuffer = new String("0");
		
     while(strBuffer!=null) {
     try {									
          i_stream = m_socket.getInputStream();
          ios = new ObjectInputStream(i_stream);
				
          try {
               try {					
                    m_client.log("Versuche messageVektor einzulesen");
                    try {	
                         messageVektor = (Vector)ios.readObject(); //bei dieser 
               //Programmzeile springt das Programm in catch(IOException)
       
                         m_client.log("messageVektor wurde eingelesen");					    }
	    catch(OptionalDataException opex) {
	         m_client.log("Optional Data found");
	     }

...

Ich habe hier nicht den kompletten Code von diesem Thread aufgeführt weil das vielleicht
ein wenig lang ist und nicht unbedingt zur Lösung des Problems beigetragen hätte.
Deshalb kann man hier auch das catch(IOException) nicht sehen.

Gruß

Alex
 

René Link

Aktives Mitglied
Hi,

springt das Programm erst beim zweiten Durchlauf der while-Schleife raus? (Client)
Wenn ja, dann versuche mal folgendes. Zieh die Initialisierung des ObjectInputStreams aus
der Schleife raus.

Code:
i_stream = m_socket.getInputStream(); 
ios = new ObjectInputStream(i_stream); 
     while(strBuffer!=null) {

Wenn es so geht, schreib mal zurück.
 
A

Alex

Gast
Hi René,

so funktionierts. Vielen dank für die Hilfe.
Allerdings habe ich keine Ahnung warum das jetzt läuft wo ich die initialisierung woanders hingeschrieben habe.

Gruß

Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X ObjectInputStream StringCorruptedException Netzwerkprogrammierung 3
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
A java.io.StreamCorruptedException: invalid stream header Netzwerkprogrammierung 2
C invalid stream header Netzwerkprogrammierung 2
X XML-RPC Problem: invalid Character Entitiy Netzwerkprogrammierung 12
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
T server empfängt nur 1 Buchstaben vom String Netzwerkprogrammierung 1
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
S Socket String InputStream in hex umwandeln Netzwerkprogrammierung 1
T Socket Gleiche String ungleich? Netzwerkprogrammierung 8
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
F String in Datenbank speichern Netzwerkprogrammierung 1
I RMI String Netzwerkprogrammierung 2
precoc String Array versenden Netzwerkprogrammierung 7
T Socket String zu Socket Netzwerkprogrammierung 26
7 String an Server Netzwerkprogrammierung 2
lumo String[] wird zu null bei Serialisierung Netzwerkprogrammierung 8
S WebService, 4-stelliger String (Jahr) als Calendar Netzwerkprogrammierung 5
M String an PHP Script aus Java übergeben Netzwerkprogrammierung 12
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Messenger - String oder Objekte Netzwerkprogrammierung 4
T Socket Nullterminierten String lesen Netzwerkprogrammierung 4
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
H String Array durch einen Stream schicken. Netzwerkprogrammierung 4
N Socket Stream in String Netzwerkprogrammierung 4
J Browser-String angeben Netzwerkprogrammierung 5
S String[] über Socket senden Netzwerkprogrammierung 3
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
G String in InetAddres umwandeln klappt nicht Netzwerkprogrammierung 5
A String per ByteBuffer empfangen? Netzwerkprogrammierung 6
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
G UTF-8 in STring umwandeln oder umgedreht Netzwerkprogrammierung 12
F String in eine URL umwandeln Netzwerkprogrammierung 7
P string over net Netzwerkprogrammierung 4
T Html-Source über URL in einen String speichern? Netzwerkprogrammierung 16
B HEX String zu einem Byte Array ? *verzweiflung* :( Netzwerkprogrammierung 16
K String zurück liefern ! Netzwerkprogrammierung 4
S SSLSocketFactory.createSocket(String hostname, int port),wo? Netzwerkprogrammierung 5
O Ip-String in byte[]-Array umwandeln? Netzwerkprogrammierung 3
C gesendeten String einlesen Netzwerkprogrammierung 3
G String to Socket ? Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben