[quote=MKThEbEsT]Opa,
Eu ja tentei usar este metodo so que ele me retorna mais bytes do que eu envio… geralmente envio uns 122 bytes e ele recebe 241 por ae…
Ja tentei DataInputStream, ObjectInputStream e nao ta dando certo =/
Se alguem tiver uma solução, agradeço.[/quote]
Em sockets é muito comum você tentar ler alguma coisa, e receber mais ou menos coisas que está esperando.
Isso é inerente aos sockets TCP/IP; não há como evitar isso.
Por isso, normalmente você é que tem de criar suas próprias mensagens.
Se quiser enviar 100 bytes, por exemplo, crie uma mensagem que contém o número de bytes a serem recebidos do outro lado, e então os bytes em si.
Por exemplo, digamos que você queira enviar 8 bytes (CA FE BA BE DE AD BE EF).
O código que envia os bytes deve enviar, primeiramente, 2 bytes que indicam o comprimento da sua mensagem (nesse caso, 00 08 ).
Depois, enviar os restantes 8 bytes (CA FE BA BE DE AD BE EF).
O código que recebe os bytes deve pegar então 2 bytes, usando a rotina readShort (da classe DataInputStream); nesse caso, irá receber um short com o valor 8.
Isso feito, o seu programa que lê os bytes pode definir um array de bytes de 8 posições, e então passá-lo para a rotina read.
OK?