Ir para conteúdo
Fórum Script Brasil
  • 0

Enviar o tamanho da String em hexadecimal no Socket


Lucas Carvalho

Pergunta

Bom dia a todos,

Estou enviando mensagens via socket pelo DataOutputStream e preciso enviar nos dois primeiros bytes o tamanho da string em hexadecimal.

se a string tem 187 caracteres preciso enviar 00 BB nos dois primeiros bytes.

eu já testei alguns exemplos, porém ele sempre me aparece com C2 na mensagem, retornando no output 00C2BB.

Um ponto a frisar é que em mensagens até 99 caracteres o bendito C2 não aparece.

StringBuffer sb = new StringBuffer(String);  
  
int axLen = sb.length();  
  
//Exemplo 1  
int h = (axLen / 256);  
int l = axLen - (h * 256);   
sb.insert(0, (char)l);  
sb.insert(0, (char)h);  
              
//Exemplo 2  
int parteAlta = ((axLen >> 4) & 0xf) << 4;  
int parteBaixa = axLen & 0xf;  
if (parteAlta == 0) sb.insert(0, (char)'0');  
sb.insert(0,(char)(parteAlta | parteBaixa));  
  
//Exemplo 3  
int l = (sb.length() & 0xFF);  
int h = ((sb.length() >> 8 ) & 0xFF);  
              
DataOutputStream saidaa = new DataOutputStream(socket.getOutputStream());  
saidaa.write(ei.getBytes());  
saidaa.flush();

Análise no output

HdrLen=32, Win=65393(241510916), Cksum=C861, Flags=18

Options= 0101080A 00003899 D2C6AD6B

DATA +0000 00C2BB30 32313541 30313830 30303038 *.B.0215A01800008*

+0010 41303030 30303630 30303030 30303031 *A000006000000001*

+0020 30303030 30303238 39303032 33313332 *0000002890023132*

+0030 34303430 35323530 34383139 31303030 *4040525048191000*

+0040 31303030 33393039 33303030 33303030 *1000390930003000*

+0050 30303030 30303030 30303030 30303030 *0000000000000000*

+0060 30303030 30303030 30303030 30363130 *0000000000000610*

+0070 30313230 39313134 38393030 35353232 *0120911489005522*

+0080 30202020 20202020 20202020 20202020 *0 *

+0090 20202020 20202020 20202020 20202020 * *

+00A0 20202020 20202020 20202020 30343031 * 0401*

+00B0 30343030 39303030 30303530 3937 *04009000005097 *

-----------------------------------------------------------

OSA_EXPR 00010207 05/25 13:24:06.028871 OUTPUT

gostaria de uma luz de todos vocês.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...