Autore Topic: Buffer da utilizzare con le Socket...  (Letto 321 volte)

Offline christian13

  • Utente junior
  • **
  • Post: 83
  • Respect: +2
    • Mostra profilo
Buffer da utilizzare con le Socket...
« il: 20 Settembre 2014, 14:29:09 CEST »
0
Salve a tutti, vorrei farvi una domanda riguardante l'utilizzo dei dei Buffer per comunicare tramite socket.

In particolare ho notato che ci sono persone che utilizzano due approcci diversi:

1) usano  "DataOutputStream" e "DataInputStream" per l'input e l'output di stringhe tramite socket;
Codice (Java): [Seleziona]
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
...
...
//e quindi..
in.readLine(); //per la lettura bloccante
out.writeUTF("Stringa");  //per scrivere

2) ci sono altri che invece utilizzano "BufferedReader" e "BufferedWriter" e quindi:
Codice (Java): [Seleziona]
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamReader(socket.getOutputStream()));
//analogamente a prima...

in.readLine(); //per la lettura bloccante
out.writeUTF("Stringa");  //per scrivere



Vorrei chiedervi qule è la differenza sostanziale tra i due meccanismi e quale potrebbe essere il "migliore"?


Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Buffer da utilizzare con le Socket...
« Risposta #1 il: 23 Settembre 2014, 10:21:16 CEST »
0
Beh diciamo che è una cosa che dipende:
C'è la documentazione dalla quale capire qualcosa:
BufferedReader (Java Platform SE 7 )
DataInputStream (Java Platform SE 7 )

Alla fine di BufferedReader c'è:
Citazione
Programs that use DataInputStreams for textual input can be localized by replacing each DataInputStream with an appropriate BufferedReader.

Io userei il DataInputStream se nello stream ci possono essere dati eterogenei, un BufferedReader se invii solo caratteri (stringhe)

Link ulteriori:
Buffered Streams (The Java™ Tutorials >       
            Essential Classes > Basic I/O)

Data Streams (The Java™ Tutorials >       
            Essential Classes > Basic I/O)
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline christian13

  • Utente junior
  • **
  • Post: 83
  • Respect: +2
    • Mostra profilo
Re:Buffer da utilizzare con le Socket...
« Risposta #2 il: 23 Settembre 2014, 11:10:25 CEST »
0
Ti ringrazio molto per la risposta....
Ho fatto questa domanda, in quanto ho un problema che non riesco a capire..

Ho aperto un altro post su questo problema, dove ho spiegato in dettaglio:

http://www.anddev.it/index.php/topic,14934.0.html

Non so se riesci ad aiutarmi, te ne sarei molto grato... :-)