Newsgroup: it.comp.java
Titolo: j2me: OutputStream non invia dati...

Salve, non so perchè, ma non riesco a verificare l'invio dei dati da parte
dell'outputStream. Cioè, una volta stablita la connessione, ad esempio con
il server ftp, ricevo il messaggio di benvenuto, ma se invio un comando al
server, quello non lo riceve, quindi non posso continuare la negoziazione.
Vi posto il codice di una mini-midlet in cui il problema si evidenzia:
(Compyright by Renato :D)
----------------
public void startApp()
    {
        int h = 0;
        rcvBuffer = new StringBuffer();
        rcvBuffer.ensureCapacity(100);
        try
        {
            connessione =
(SocketConnection)Connector.open("socket://localhost:9000");
            is = connessione.openDataInputStream();
            os = connessione.openDataOutputStream();
            while(((char)h)!='\n')
            {
               h = is.read();
               rcvBuffer.append((char)h);
            }
            System.out.println(rcvBuffer.toString());
            os.write(stringa.getBytes(), 0, stringa.getBytes().length);
            os.flush();
            is.close();
            os.close();
            connessione.close();
        }
        catch (Exception e)
        {
            System.err.println(e.toString());
        }
    }
+MonsterMash+

 server, quello non lo riceve, quindi non posso continuare la negoziazione.
[CUTCUT]
Detta così è un casino, il tuo "problema" penso risieda sul server ftp (o
smtp o quel che usi) in quanto nn si accorge del fatto che l'invio comando è
terminato, potrebbe essere benissimo un terminatore o un carriage return
mancante come suggerisce Cristiano.
Prova a lavorare in questa direzione aggiungendo \n e \r al termine della
stringa di comando che invii.
Se cosi' nn fosse, ti suggerisco due modi per debaggare il tuo codice:
1) "modo figo :))))" : ti costruisci un tuo "socket tester" in java usando
il package 
java.net
&
java.io
, magari te lo evolvi con una GUI e lo metti
opensource :D:D:D:D
2) "modo spiccio" 
http://www.cspltd.ndirect.co.uk/internet/networking.htm
scaricati Castalia Ip socket test
in pratica apri su una porta a tuo piacimento un serverino che ti permette
di visualizzare cio' che riceve ed eventualmente spedire cio' che vuoi,
simulando di fatto una connessione client-server.
Ciao :D:D:D
Reny @ Home (..me ne vo a giro in moto....)

             os.write(stringa.getBytes(), 0, stringa.getBytes().length);
Prova cosi:
    os.write((stringa.getBytes()+"\r\n"), 0,
(stringa.getBytes()+"\r\n").length);
Ciao,
.:: Virus ::.

 funziona, ma con la midlet niente da fare... ;(
O meglio: con l'emulatore funziona. Con il cell no.
Ciao!
.:: Virus ::.

 Ciao!
Ciao, grazie di tutto, sia a te che a Renato. Effettivamente sono un idiota
io, che non mi rendevo conto che perchè il server si accorgesse che il
comando fosse terminato dovevo metterci un carattere di invio... vabe', ci
starò attento per la prossima volta :)
Cmq, localhost sta per 127.0.0.1, ovvero chiama il computer locale,
qualuncue sia il suo ip, e il suo stato di rete.
Per quanto riguarda il tuo problema, non so aiutarti purtroppo :(
Io non ho ancora potuto provare la mia midlet su un vero cellulare, ma solo
sull'emulatore. E la cosa mi spaventa a morte, perchè già so che farla
girare su un cellulare sarà molto più difficile (anche per questioni di
memoria, di cui per il momento mi sto preoccupando relativamente).
Ma se funziona sull'emulatore e non sul cellulare, deve essere un problema
di compatibilità. Intanto, scusa per la domanda idiota, sei sicuro che il
celulare abbia tutte le impostazioni apposto per la connessione ad internet?
Ciao

 celulare abbia tutte le impostazioni apposto per la connessione ad
internet?
La configurazione è a posto, l'ho già controllata e per di più ho verificato
che la connessione ad una pagina web tramite i comandi standard del cell
funzionano.
Oggi ho letto sul forum java mobile di sun che forse è un problema che
si può risolvere creando un thread dedicato per la connessione piuttosto
che effettuarla nella commandAction.
Se funziona ti faccio sapere, intanto grazie.
Ciao!
.:: Virus ::.