Problem con socket

di il
3 risposte

Problem con socket

Ciao a tutti, sto sviluppando un applicazione in java per la comnonucazione con i nuovi registratori di cassa fiscali, utilizzando il protocollo Xon/xoff.
Ho collegato il terminale via ethernet utilizzando il socket con questo codice
Socket socket = new Socket(ip,port);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream outStream = socket.getOutputStream();
String messageString = "message1";
outStream.write(messageString.getBytes());
outStream.flush();
messageString = "message2";
outStream.write(messageString.getBytes());
outStream.flush();
outStream.close();
br.close();
socket.close();
Fin qua tutto bene, la stampante stampa.Quando però cerco di inviare piu comandi in sequenza si blocca al primo messaggio, come se il socket perdesse il messaggio, cosi sono costretto a chiudere il socket e riaprirlo in questo modo
Socket socket = new Socket(ip,port);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream outStream = socket.getOutputStream();
String messageString = "message1";
outStream.write(messageString.getBytes());
outStream.flush();
outStream.close();
br.close();
socket.close();

socket = new Socket(ip,port);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream outStream = socket.getOutputStream();
String messageString = "message2";
outStream.write(messageString.getBytes());
outStream.flush();
outStream.close();
br.close();
socket.close();
In questa maniera funziona ma impiega più tempo.Considerato che devo inviare molto messaggi il tempo lievita.
grazie per le risposte

3 Risposte

  • Re: Problem con socket

    Ciao scusa se riuppo questo vecchio post ma anche io vorrei fare una cosa del genere. Solo che io tramite socket, riesco a collegarmi al registratore di cassa tramite il suo IP e porta. Però qualsiasi stringa provo ad inviare, essa, non viene stampanta.

    sapresti darmi un aiuto?
  • Re: Problem con socket

    bircastri ha scritto:


    Solo che io tramite socket, riesco a collegarmi al registratore di cassa tramite il suo IP e porta. Però qualsiasi stringa provo ad inviare, essa, non viene stampanta.
    IP/porta chiaramente non bastano. Serve anche conoscere il "protocollo" lungo il flusso di comunicazione. E' testuale? O binario? (o un mix?). Se testuale, con quale encoding sono i caratteri? ASCII?, UTF-8? Altro? Ci sono caratteri particolari di header e terminazione da inviare?
  • Re: Problem con socket

    Io mando stringhe se collegata sulla seriale.
Devi accedere o registrarti per scrivere nel forum
3 risposte