C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[29286] Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요...
수야!╋ [sooya23] 1241 읽음    2004-04-07 13:25
    int strLen;
    char nameMessage[NAMESIZE + BUFSIZE]; // 뭐 네임싸이즈 가 뭔진 모르겠지만

    // (char *)nameMessage을 다르게 써야하는지요
    strLen = recv( sockTemp, (char *)nameMessage, NAMESIZE + BUFSIZE - 1, 0 );

char nameMessage[(NAMESIZE + BUFSIZE)];
이 문장은
char *nameMessage = (char*) malloc((NAMESIZE + BUFSIZE));
로 바꿀수 있는데요
왜 이 이야기를 하냐면

recv펑션의 인자들은 SOCKET, char*, int, Flag);이죠?
char*를 char*로 변환시키면 -_-; 안댄다는거지여~
그냥 nameMessage라고 해주시면되구용

젤 위험하게 보이는게 NAMESIZE + BUFSIZE -1 이라는 부분이네요
NAMESIZE + BUFSIZE - 1만큼 받으라고 해도 그만큼 받지 못하는 경우의 대비는 어떻게 하시는지요?

^^ 힘내세요~

구리구리 님이 쓰신 글 :
: 네 수야님 감사합니다
: 그런데 받는부분에서 제가 뭘 잘못햇는지 잘 안되네요
:
: 보내고 받는 부분에 둘다 아래와 같은 구조체가 있습니다
: struct MY_STRUCT{
:                   int a;
:                   char b[100];
:                 };
: typedef MY_STRUCT *PMY_STRUCT;
:
: 보내는 부분에서
: SOCKET sock = (SOCKET)arg;
:
: char  buf[4096] = {0,};
:
: PMY_STRUCT pMyStruct=  (PMY_STRUCT)buf;
:
: //값입력
: pMyStruct->a = 100;
:
: memcpy(pMyStruct->b,"어쩌구~", sizeof("어쩌구~") );
:
: //보내기
: int cch = sizeof(MY_STRUCT);
:
: send(sock, (const char *)&pMyStruct, cch, 0);
: 이렇게 했고요
:
:
: 받는 부분은 이렇거든요
: PMY_STRUCT pMyStruct=  (PMY_STRUCT)buf;
:
: while (1)
: {
:     SOCKET sockTemp = accept( g_sockListen, NULL, NULL );
:     // 소켓 에러 체크
:     if( INVALID_SOCKET == sockTemp )
:     {
:         printf("연결된 소켓 에러");
:         return 0;
:     }
:
:         printf("Socket number %d connected\n",sockTemp);       
:
:     int strLen;
:     char nameMessage[NAMESIZE + BUFSIZE];
:
:     // (char *)nameMessage을 다르게 써야하는지요
:     strLen = recv( sockTemp, (char *)nameMessage, NAMESIZE + BUFSIZE - 1, 0 );
:
:     if (strLen == -1 )
:         return 1;
:
:     //  받을때 구조체를 받아서 여기 있는 구조체에 복사해서
:     // 써야 하는건지 잘모르겠네요
:     nameMessage[strLen] = 0;
:     printf("%s\n", nameMessage);
: }
:
:
: 결과 값이
: | ?
: 위 처럼 나오네요 뭔가 빼먹은듯 한데...
: 얼마전부터 패킷 보내는걸 해보려는데 잘 안되네요
: 제발 갈켜주세요  ㅠ,.ㅠ

+ -

관련 글 리스트
29281 [질문]패킷을 구조체로 전송하는 방법이요... 구리구리 1301 2004/04/07
29290     Re:제가 알기로는 ..... ^^; 푸른노래 1405 2004/04/07
29288     Re:[질문]패킷을 구조체로 전송하는 방법이요... 손병찬 1881 2004/04/07
29283     Re:[질문]패킷을 구조체로 전송하는 방법이요... 수야!╋ 1609 2004/04/07
29285         Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 구리구리 1310 2004/04/07
29286             Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 수야!╋ 1241 2004/04/07
29287                 Re:Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 수야!╋ 3943 2004/04/07
34795                     Re:Re:Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 박정진.바보 2119 2004/04/08
34794                     Re:Re:Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 구리구리 1179 2004/04/08
34793                     Re:Re:Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 수야!╋ 1193 2004/04/07
34792                         Re:Re:Re:Re:Re:Re:[질문]패킷을 구조체로 전송하는 방법이요... 수야!╋ 1248 2004/04/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.