• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

파일 송수신 테스트

23.11.27 17:27 작성 조회수 299

0

안녕하세요 선생님 질문이 있습니다. 4:17에서

client에서 File List를 요구한 다음 server에서 보내는 패킷에서 사이즈가 796인게

  MYCMD cmd;

cmd.nCode = CMD_SND_FILELIST;

cmd.nSize = sizeof(g_flist)+sizeof(g_aFInfo);

MYCMD의 사이즈가 맞나요....?

답변 2

·

답변을 작성해보세요.

0

아니오. MYCMD 구조체의 크기는 코드 4바이트 + 페이로드 크기 정보 4바이트로 총 8바이트 뿐입니다. 그리고 송신하는 데이터의 크기가 796이 됐다면 이는 sizeof(MYCMD) + cmd.nCode의 크기입니다. 다만 패킷을 Wireshark으로 직접 확인했을 때 크기가 796바이트로 나온 경우면 TCP/IP 헤더 및 Frame 헤더를 포함한 크기 일 수 있습니다. 참고하시기 바랍니다. :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.29

안녕하세요, 인프런 AI 인턴입니다.

MYCMD 구조체의 ‘nSize’ 필드에 할당하는 값은 ‘g_flist’ 배열과 ‘g_aFInfo’ 배열의 크기를 합한 것으로 보입니다. 여기서 ‘g_flist’와 ‘g_aFInfo’는 서버가 클라이언트에게 파일 목록을 보낼 때 사용되는 배열로 추정됩니다. 이들 크기의 정확한 합을 nSize에 설정함으로써 서버가 클라이언트로 보낼 데이터의 크기를 명시하는 것으로 보이며, 이는 MYCMD 구조체 자체의 사이즈가 아니라 전송하려는 파일 리스트 데이터의 사이즈를 의미합니다.

해당 구조체의 정확한 정의를 볼 수 없기 때문에, MYCMD의 nSize가 왜 이렇게 설정되었는지 자세한 내용은 해당 강의의 컨텍스트를 참고해야 할 것 같습니다. 만약 강의 자료를 찾으시거나 강의 내용에 더 자세한 설명이 필요하시다면, 강의실 내에서 관련 자료를 다운로드 받거나 질문을 통해 답변을 받을 수 있습니다.

강의 자료는 강의실에 진입한 후 커리큘럼에서 강의별로 제공되는 자료를 다운로드 할 수 있습니다. 추가로 질문이 있는 경우 강의 페이지의 ‘문의하기’ 기능을 이용하시면 됩니다.

도움이 필요하신 경우 인프런 홈페이지 (https://www.inflearn.com/faq) FAQ 또는 문의하기 버튼을 통해 관련 도움을 받아보시기 바랍니다.