예전 자유 게시판: [re] Network C to Java 통신 질문요^^;;

(Network C to Java 통신 질문요^^;;에 대한 답글입니다.)


안녕하세요~
잘은 모르지만... 결국은 ByteBuffer와 getInt 같은 수단을 이용해서 패킷의 바이트들을 잘라내서 형변환해야 하는 것으로 알고 있습니다. (어쩌면 그런 일을 자동으로 해주는 라이브러리나 그런 코드를 자동으로 생성하는 도구가 있을 지도 모르겠네요.)

속도가 큰 문제가 되지 않는다면 JSON을 공통의 형식으로 사용하는 것도 괜찮을 듯 합니다... (그러면 기존 라이브러리들이 있으니 적용하기도 쉽고, 또 HTTP로도 가능하고 등등)

>
>
>안녕하세요~^^;; 왠지 개인적인 질문 같아서...드려도 될지 잘 모르겠네요...
>네트워크 C/C++ 쪽으로만 개발 하다가
>Android 를 접하게되면서 Java 쪽도 요즘 신나게 보고 있답니다. ^^;
>
>이전에 C/C++ 에서 개발한 서버를 그대로 두고, Android를 client 로 두고
>통신을 하고 싶습니다.
>
>예를 드는게 빠르겠죠?^^;
>
>C에서는 구조체 또는 class 형태로 packet 를 구성합니다.
>
>typedef struct _header {
> short size;
> short name;
>}PACKET_HEADER;
>
>typedef struct _student : PACKET_HEADER
>{
> int num;
> char name[20];
>}ST_STUDENT;
>
>
>로 구성되어 있다면, c에서는
>
>ST_STUDENT stu;
>send( socket, (char*)stu, sizeof(stu) );
>
>라는 형식이 됩니다.
>즉, byte(char*)형으로 보내게 됩니다. (packing 은 당연^^;)
>
>
>이것은 자바에서는 class 형태로 받아야 하는데...
>
>C에서 packing 을 하게되면 [int|char] 이런씩으로 순차적으로 들어가는게
>Java에서 받으려면 어떻게 하는지 궁금합니다.
>(제가 잘못 설명 했을지도 모르니, C쪽에 저런방식을 java에서 어떻게든 class 형태로 통신을 하고 싶네요...)
>
>몇몇 가지 시도해본거랑 찾아본거는 생각 처럼 쉽게 안되네요^^;;
>
>
>그리고 NDK(JNI) 문법! 찾아서 열심히 보구 있습니다. ㅎㅎ
>연구실 세미나에 조금씩 하고, 블로그에 포스팅을 해둘까 합니다 ㅎㅎ
>밤새 시간 가는줄도 모르겠네요^^
>
>감기 조심하세요^^

--류광, 2011-12-02 19:12