[질문]SOCKET 을 통하여 구조체를 보내려면?

익명 사용자의 이미지

소켓을 생성하여 아래 구조체
+----+----------+
|type| message |
+----+----------+
형태로 보내려고 합니다.

근데 잘안되서 질문합니다.
답변주시면 감사하겠습니다.

익명 사용자의 이미지

혹시 구조체의 message 필드가 이렇게 되어 있지 않나요?

struct
{
int type;
char *message;
}

만일 그렇다면 다음처럼 바꾸면 됩니다.
struct
{
int type;
char message[1024];
}

질문 내용만으로는 원인 파악이 어렵지만 아마도 이 문제가 아닐까 싶네요.
맞으면 제대로 찍었다고 좀 알려 주시고
전혀 다른 문제라면 제대로 좀 찍으라고 답장해 주셔요 ~~ ^^

한번 찍어 봤습니다...

익명 사용자의 이미지

제대로 찍으셨네요..^^
억수로 감사.

익명 사용자의 이미지

구조체를 인터넷으로 보내는 방법은 정말 훌륭하지 않나 생각됩니다. 그
런데 다른분이 대답을 해주셨듯이 요지는 데이터의 타입에 있습니다. 포
인터는 내쪽에서만 유효하지 다른쪽에는 유효하지 않습니다. 따라서 변환
을 해주셔야만 하고 float형도 마찬가지입니다. 인테이저 형의 경우에
는 htons()같은 변환 함수를 사용하시면 됩니다.

자세한것은 RFC1014를 한번 읽어 보심이....

익명 사용자의 이미지

양쪽 cpu가 endian이 같은데
integer를 왜 htons()로 변환을 하지? ㅋㅋㅋ
그것도 htonl()도 아니고 htons()라니... ㅋㅋㅋ

TCP/IP header도 아니고
application 영역인데... ㅋㅋㅋ