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
[23333] [질문] 구조체를 함께 날려보낼 수 있는 방법은?
시간한줌 [utime] 670 읽음    2002-12-23 16:20
안녕하세요~
              시간한줌입니다.
아까 질문한것에 조금 서광이 비쳐서 다시 질문을 수정합니다.

소켓 통신으로 구조체를 받으려고 하는데 구조체를 여러개를 두려고 합니다. 그래서 앞에 구조체를 구분할 수 있는 해더 내용을 담았습니다.


// 서버와 클라이언트의 해더파일 내용
typedef struct MyRec
{
    char FName[255];
    char LName[127];
} TMyRec;
typedef TMyRec* PMyRec;
//---------------------------------------------------------------------------

// 클라이언트
    // 구조체 보내기
    PMyRec rec = new TMyRec;
    int leng=0;

    strcpy(rec->FName,"FileName뭘까요?");
    leng += sizeof(rec->FName);

    strcpy(rec->LName, "FileLength길이 ");
    leng += sizeof(rec->LName);

    byte * Buff = new byte[leng+3];
    strcpy(Buff, "UID");
    strcat(Buff,(byte *)rec);// 여기서 문제가 난듯 하기두 하고요 ㅡㅡ;;;

    ClientSocket1->Socket->SendBuf(Buff, leng+3);
    delete [] Buff;
//---------------------------------------------------------------------------


//서버 부분
    char * Buff = new char[3];
    Memo1->Lines->Add("받은 버퍼 크기 : " + IntToStr(Socket->ReceiveLength()));

    Socket->ReceiveBuf(Buff, 3);
    AnsiString str = Buff;
    delete [] Buff;
    Memo1->Lines->Add("짤린 버퍼 크기 : " + IntToStr(Socket->ReceiveLength()));

    if( str == "UID" )
    {
        PMyRec temp = new TMyRec;
        memset(temp, 0x00, sizeof(temp));
        Socket->ReceiveBuf(temp, Socket->ReceiveLength() );
        Memo1->Lines->Add(temp->FName);
        Memo1->Lines->Add(temp->LName);
    }
//---------------------------------------------------------------------------

이렇게 했더니~

받은 버퍼 크기 : 512
짤린 버퍼 크기 : 509
FileName뭘까요?

받은 버퍼 크기 : 0
짤린 버퍼 크기 : 0


이런 결과가 나옵니다.
왜? 두번씩이나 읽고 첫번째 구조체 값인 FName만 제대로 읽는 거에요?
웅~ 이거땜에 오늘 하루종일 고생이네요~
좀 해결해 주세요~ ^^

+ -

관련 글 리스트
23333 [질문] 구조체를 함께 날려보낼 수 있는 방법은? 시간한줌 670 2002/12/23
23337     Re:[질문] 구조체를 함께 날려보낼 수 있는 방법은? 이명주 966 2002/12/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.