마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 배열 전송하려고 하는데요..

0 추천

라즈베리파이 C 기반하고 안드로이드 자바 기반으로 통신을 하고 있는데요 

안드로이드에서 

byte data[] = {(byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x05};
socket_out.println(data);

이렇게 byte 변수를 선언하고 data 를 전송하도록 하였구요

라즈베리파이(리눅스)에서는 이 데이터를 그대로 출력하려고 하는데요  

if((n=read(connSock, rbuf, 100))>0){ //rbuf에 데이터 수신
   for(i=0; i<16; i++)
      printf("%x ", rbuf[0])

라즈베리파이 (340 포인트) 님이 2016년 3월 5일 질문
라즈베리파이님이 2016년 3월 5일 수정

1개의 답변

0 추천
println 의 경우 라인단위로 전송이 되는데 첫 바이트가 0x00이라 null 스트링으로 인식하여 전송할듯 한데요..

socket_out가 PrintWriter 클래스라면, write(char[] buf, int offset, int count) 같은 메소드를 이용해서 사이즈만큼 보내셔야 할 듯 합니다.
익명사용자 님이 2016년 3월 7일 답변
감사합니다. 해보았는데요
socket_out.write((data, 0, data.length);
이렇게 선언하였는데요. 자꾸 에러가 나서 수정해보니
socket_out.write(String.valueOf(data), 0, data.length);
이렇게 전송하라고 하는군요 ㅜㅜ
왜 그런지 모르겠어요...
C 언어에서 통신 할때처럼 배열 A = 1, 2, 3 을 보내면 받을때도 배열 1, 2, 3 이 출력되는데, 이건 어떻게 하지는지 전혀 감이 안와요..
...