Me conecto com um sistema feito em Delphi, via socket, e necessito enviar alguns dados seguindo um padrao pre-definido. Mas ele esta enviando algum “Lixo” antes de enviar o que realmente necessito.
Funciona mais ou menos assim:
Ao fazer a conexão com o servidor em Delphi, ele envia esse pacote:
AC ED 00 05
(Que nao deveria ser enviado, pois nao pedi pra enviar nada )
E ao enviar o meu pacote, primeiro ele envia mais um outro pacote, q tbm nao quero nem saber dele:
77 0F ( pelo q eu notei, sempre vem 77 seguido no numero de bytes do pacote q quero enviar, neste caso 0F=15
ai logo em seguida ele envia o q eu realmente tenho q enviar:
55 0A 00 03 00 05 00 03 00 00 00 01 00 06 40
Com isso meu padrao de comunicacao vai por agua abaixo, pois esse dois primeiros pacotes (Lixos), sao desconsiderados pelo servidor, pois nao começam com “55” e tbm nao fazem parte dos dados.
Vc está usando ObjectOutputStream no cliente Java ??? Posso apostar que sim…
ObjectOutputStream e ObjectInputStream só podem ser usados em conjunto, pois falam o seu próprio protocolo. São coisas do Java para o Java, como RMI, que tb usa serialização Java.
Use PrintWriter ou DataOutputStream ou BufferedOutputStream para cuspir o que vc quer. No caso do PrintWriter, muito coidado com o CharSet, que pode ser diferente do charset que o Delphi está usando.