C 구조체의 데이터를 자바에서 읽고 쓰려면?
글쓴이: marunguy / 작성시간: 금, 2010/02/19 - 11:43오전
안녕하세요.
C/C++ 로 구현된 클라이언트/서버프로그램이 있습니다.
이중 서버프로그램을 자바로 포팅할려고 합니다.
프로토콜상에 구조체 데이터를 그대로 주고 받는 부분이 있습니다.
이전버전과의 호환성 문제로 프로토콜을 수정할 수가 없습니다.
자바에서 메모리상의 C구조체 데이터를 읽을려면 꽤 지저분한 걸로 보입니다.
파이썬같은 경우 C구조체 데이터를 읽고 쓸수 있는 라이브러리를 기본으로 제공하는데
자바도 그런 라이브러리를 누군가 구현해 놓지 않았을까요?
자바에서 C구조체 데이터를 좀 더 간편하게 읽고 쓸 수 있는 방법이 없을까요?
Forums:
쉬운 방법이 있는지는 모르겠습니다만...
얼핏 생각하기로는 자바에서 클래스를 정의하고,
JNI로 오브젝트를 넘긴다음에,
JNI내부에서 항목 하나하나씩을 복사해줘야 할 것 같은데요.
(아니면 JNI내부에서 오브젝트를 생성해서 리턴해주거나...)
그냥 쉽게 매핑시켜주는 건 있는지 모르겠네요.
구글 검색하니 많은
구글 검색하니 많은 사람들이 preon 이라는 라이브러리를 추천하네요.
예를 들어
http://stackoverflow.com/questions/839407/replicating-c-struct-padding-in-java
에 보면 비슷한 같은 질문을 한 사람이 있습니다.
it can handle Big/Little endian binary data, alignment (padding) and various numeric types along other features. It is a very nice library, I like it very much
라고 preon 을 소개하는 답글이 있네요. preon 홈페이지는
http://preon.sourceforge.net/
이곳입니다. 도움이 되기를.
댓글 달기