인프런 커뮤니티 질문&답변

인프러너님의 프로필 이미지
인프러너

작성한 질문수

사물인터넷 통신은 내 손에 (Arduino, MQTT, Nodejs, MongoDB, Android,VS Code)

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

작성

·

361

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();

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

인프러너님의 프로필 이미지
인프러너

작성한 질문수

질문하기