Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con writeObject

    Salve a tutti,

    Spesso quando uso il metodo writeObject
    per inviare messaggi attraverso socket mi si aggiunge
    all'inizio del messaggio il carattere "t"...

    Per esempio se dovessi inviare "Ciao",
    riceverei "tCiao".

    Questo è il codice che sto utilizzando per il client:

    codice:
       
    Socket s1 = new Socket ( ip, portaDest );
    ObjectOutputStream oout = new ObjectOutputStream (s1.getOutputStream());                                        
    oout.writeObject("ciao");
    Questo per il server:

    codice:
    		
    Socket s1 = server.accept(); 				 		
    InputStream is = s1.getInputStream(); 		
    BufferedReader dis = new BufferedReader(new InputStreamReader(is));                  
    String str=dis.readLine();
    System.out.println("Ricevuto: "+str);
    Qualcuno ha qualche idea ?
    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Stai facendo una cosa profondamente errata: se scrivi usando un ObjectOutputStream, dovrai leggere obbligatoriamente con ObjectInputStream.

    BufferedReader serve a leggere dati testuali... quello che tu scrivi nello stream non è un dato testuale, ma la serializzazione i un oggetto Java. Il fatto che tu riesca a leggere il contenuto di quello che scrivi è solo un puro caso (la classe String, infatti, memorizza il testo in un array di char, che sono praticamente in chiaro... quella t davanti al testo, infatti, indica che l'oggetto letto è un array)... ma se provavi con degli oggetti più complessi non avresti letto niente di più di qualche carattere incomprensibile.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Che asino che sono :P

    Ti ringrazio!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.