우음,, TCP/IP 기반에서 메세지를 주고 받을때
구조체를 만들어서 넘겨라는 것은 알겠는데
대충 어떤형식으로 만들어서
어떠한 방식으로 넘기는지
감이 안 잡히네요 ㅠㅠ
대충 내용은
보낸 메세지 길이 메세지
이정도면 충분할거 같은데 ;ㅅ;
여기저기 뒤져봐도 찾지도 못하고 ;ㅅ;
참고할만한 문서나 사이트좀 알려주실 수 있을까요??
직접 설명해주시면 더 좋구요 ;ㅅ;
int wlen = 0, len = 전송할 데이타의 총 길이(구조체 크기); while (len>0) { int wval; if ((wval=jtcp_write(소켓핸들, (char *) &struct + wlen, len, 0)) == -1) { jtcp_close(소켓핸들); return false; }
len -= wval; wlen += wval; }
struct msg{ int msg_len //메세지 길이 char message[1000] //실제 메세지 }
메세지 길이를 먼저 보내고 실제 메세지를 메세지 길이만큼 보내려고한다면 구조체를 이렇게 만들어서
먼저 4바이트만 읽어들여서 메세지 길이를 읽어내고 그다음에 알아낸 메세지 길이만큼 메세지를 읽어들이면 되는건가요??
네.. 그 방법이 가장 일반적일거라 생각합니다. 서로 서버와 클라이언트간에 프로토콜이 이미 정해져 있는 상태이기 때문에 메세지 길이를 먼저 보내실 필요는 없을것 같습니다. 보내는쪽은 그냥 전체 보내시고 읽어 들이는쪽은 말씀하신 방법으로 구분해서 읽어 드리면.. 될것 같습니다. 그럼 수고하세요.
텍스트 포맷에 대한 자세한 정보
<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]
int wlen = 0, len =
int wlen = 0, len = 전송할 데이타의 총 길이(구조체 크기);
while (len>0) {
int wval;
if ((wval=jtcp_write(소켓핸들, (char *) &struct + wlen, len, 0)) == -1)
{
jtcp_close(소켓핸들);
return false;
}
len -= wval;
wlen += wval;
}
음,, ㅇㅅㅇ 대충 그렇군요,,
메세지 길이를 먼저 보내고 실제 메세지를 메세지 길이만큼 보내려고한다면 구조체를 이렇게 만들어서
먼저 4바이트만 읽어들여서 메세지 길이를 읽어내고 그다음에 알아낸 메세지 길이만큼 메세지를 읽어들이면 되는건가요??
네.. 그 방법이 가장
네.. 그 방법이 가장 일반적일거라 생각합니다.
서로 서버와 클라이언트간에 프로토콜이 이미 정해져 있는 상태이기 때문에
메세지 길이를 먼저 보내실 필요는 없을것 같습니다. 보내는쪽은 그냥 전체 보내시고
읽어 들이는쪽은 말씀하신 방법으로 구분해서 읽어 드리면.. 될것 같습니다.
그럼 수고하세요.
댓글 달기