[질문]소켓통신에서 바이트로 들어온 데이타.

jjasook의 이미지

클라이언트는 자바로,
서버는 C입니다.

서로 통신을 위해서는 바이트로 데이터를 넘겨야 한다고 합니다.

자바에서 데이타가 들어로면,

typedef struct{

int tid;
int cid;
int data_len;
char data[];
}data;

nread = read(fd, data, sizeof(data));

이렇게 읽어 들여서,
data.tid, data.cid 이러한 방법으로
사용을 해도 되는지 알고 싶습니다.

또...혹 자바에서 바이트로 값을 어떻게 넣어서 보내는지 아시는 분 계시면 알려주시면 감사하겠습니다.

그럼, 수거하세요.

jjasook의 이미지

서버가 C인 곳에서 자바쪽으로
바이트로 데이터를 보내고자 할 때에는 어찌해야 합니까?

도저히 감이 오질 않습니다.
이문제를 해결해야하는데..........헉헉헉입니당.

asteroid의 이미지

특별히 고려해야 할 사항은 없습니다.

byte order와 data representation만 주의하시면 될 것 같습니다.

Java에서 그 문제를 해결하기 위해 java.io.DataIn/OutputStream이라는

것이 존재합니다. C쪽에서 struct로 받는다면, 데이터를 보내는 측에서

적당히 잘 패키징해서 보내주면 잘 받습니다.

(단, char *data; 이 부분은 적당히 손 좀 봐야할 것 같네요.)