• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    미해결

mqtt client 에서 받은 값이 깨질경우

23.07.23 11:20 작성 조회수 256

0

A 서버에서 mqtt 메시지를 발송해서

B 서버(리눅스)에서 메시지를 받았는데 메시지 값이 hex 코드값인데 mosquitto client에서 값이 깨져서 오는데 이럴경우 어떻게 받아야 깨지지 않을까요??

 

java 에서도 hex코드값을 message.getPayload().toString() 으로 받았는데 값이 깨져서 받아지는데

 

hex 코드로 받은 값을 자바에서 안깨지게 받을 수 있는 방법이 있을까요?

답변 1

답변을 작성해보세요.

0

MQTT 클라이언트에서 받은 페이로드는 16진수 값을 나타내는 바이트 배열일 가능성이 높습니다. 다음 코드를 사용하여 바이트 배열을 읽어 16진수 문자열로 변환할 수 있습니다.
byte[] payload = message.getPayload();

StringBuilder hexString = new StringBuilder();

for (byte b : payload) {

String hex = String.format("%02X", b); // Convert byte to hex string

hexString.append(hex);

}
String hexValue = hexString.toString();

위처럼 한번 해보시기 바랍니다.