Originariamente inviato da Salinas
codice:
OutputStream s1out = cliente.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s1out));
bw.write(packet);  //packet è una stringa
come faccio a fargli passare byte?

comunque non devo trasformare una stringa in byte, ma dire al socket che quello che deve mandare non sono stringhe, ma byte.
No, non ci siamo. L'OutputStream del socket tratta byte. Se "decori" lo stream con altri wrapper per avere un "Writer" generalmente dovrebbe essere perché vuoi scrivere solo "a caratteri" e basta. I Writer infatti trattano "caratteri" ... non byte.

Se il formato del tuo "protocollo" di comunicazione è tale per cui devi mandare dati binari e anche stringhe, allora devi lavorare solo a livello di OutputStream (o sottoclassi) e ottenere da un String l'array di byte[] da inviare .... a patto ovviamente che il tuo "protocollo" permetta al destinatario di sapere "quanti" dati aspettarsi.