소켓을 생성하여 아래 구조체 +----+----------+ |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 영역인데... ㅋㅋㅋ
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: [질문]SOCKET 을 통하여 구조체를 보내려면?
혹시 구조체의 message 필드가 이렇게 되어 있지 않나요?
struct
{
int type;
char *message;
}
만일 그렇다면 다음처럼 바꾸면 됩니다.
struct
{
int type;
char message[1024];
}
질문 내용만으로는 원인 파악이 어렵지만 아마도 이 문제가 아닐까 싶네요.
맞으면 제대로 찍었다고 좀 알려 주시고
전혀 다른 문제라면 제대로 좀 찍으라고 답장해 주셔요 ~~ ^^
한번 찍어 봤습니다...
Re^2: [질문]SOCKET 을 통하여 구조체를 보내려면?
제대로 찍으셨네요..^^
억수로 감사.
Re: [질문]SOCKET 을 통하여 구조체를 보내려면?
구조체를 인터넷으로 보내는 방법은 정말 훌륭하지 않나 생각됩니다. 그
런데 다른분이 대답을 해주셨듯이 요지는 데이터의 타입에 있습니다. 포
인터는 내쪽에서만 유효하지 다른쪽에는 유효하지 않습니다. 따라서 변환
을 해주셔야만 하고 float형도 마찬가지입니다. 인테이저 형의 경우에
는 htons()같은 변환 함수를 사용하시면 됩니다.
자세한것은 RFC1014를 한번 읽어 보심이....
Re^2: [질문]SOCKET 을 통하여 구조체를 보내려면?
양쪽 cpu가 endian이 같은데
integer를 왜 htons()로 변환을 하지? ㅋㅋㅋ
그것도 htonl()도 아니고 htons()라니... ㅋㅋㅋ
TCP/IP header도 아니고
application 영역인데... ㅋㅋㅋ
댓글 달기