Olá pessoal. Estou implementado uma comunicação com um equipamento de rede via socket. Quando pego um conjunto de dados para enviar, utilizo o DataOutputStream sobre o OutputStream do Socket com o equipamento, e a codificação enviada dos dados aparentemente vai em ASCII. Preciso que isso vá em hexadecimal pois o equipamento expera que os dados cheguem assim. Ex.:
int headerLength = 33; //em hexa seria 21
O problema é que o valor está sendo enviado como 33 e não 21. Como posso resolver isto?
int vlr1=Integer.parseInt(inteiro.getText().trim());
String numerohex=Integer.toHexString(vlr1);
resultado.setText(numerohex);
I
iktuzPJ
Ok… desta forma consigo a representação em hexa do valor inteiro que eu tenho. Mas quando for enviar isto via socket mando cada byte do String da representação do valor em hexa? O equipamento espera algo como isto:
Os 4 primeiros bytes 00 00 00 2C (44 em decimal) definem o tamanho da mensagem. Quando monto a mensagem na aplicação tenho o 44 e não sei como mandar para o equipamento o 00 00 00 2C. Grato.
S
Samuel_PessorrussoPJ
Deixa ver se eu entendi… vc tem uma aplicação que conversa com um equipamento (não é outra aplicação), certo ?
I
iktuzPJ
Não saberia te dizer exatamente, mas creio que seja uma aplicação embutida dentro do equipamento. A comunicação é feita via socket. Ele recebe o cabeçalho em hexa, os demais dados acho que podem se em ASCII.
I
iktuzPJ
Acabei resolvendo o problema, caso alguém se interesse como referência…