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
[16939] Re:[질문]소켓으로 구조체 받기
이경문 [gilgil] 1445 읽음    2002-03-28 00:29
우선 다음과 같은 코드를 보시죠.

AnsiString s;
s = "1";
ShowMessage(IntToStr(sizeof(s)));
s = "12";
ShowMessage(IntToStr(sizeof(s)));

결과는 어떻게 될까요? 1, 2 로 나오는 것이 아니가 4, 4, 로 나옵니다.
즉 string의 길이가 sizeof가 될 수는 없다는 얘기지요.
struct정의를 다음과 같이 해 보시면 될 겁니다.

typedef struct MyRec
{
  char FName[255];
  char LName[255];

} TMyRec;

AyanamiRei 님이 쓰신 글 :
: 소켓으로 구조체를 주고 받으려고 하는데요.
: 보낼때 에러 나는것도 아니고
: 받을때 에러 나는것도 아닌데..값이 제대로 안들어 오네여..
:
:
: 서버쪽에서 이렇게 보내구요..
: typedef struct MyRec
: {
:   AnsiString FName, LName;
:
: } TMyRec;
: typedef TMyRec* PMyRec;
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: PMyRec temp;
: temp = new TMyRec;
: temp->FName ="test1";
: temp->LName = "test2";
: ss->Socket->Connections[0]->SendBuf(temp,sizeof(temp));        //ss는 서버소켓입니다.
: }
:
: //////////////////////////////////////////////////////////////////////////
: //클라이언트쪽은 다음과 같이 받았습니다.
:
:
: void __fastcall TForm1::csRead(TObject *Sender, TCustomWinSocket *Socket)
: {                      //cs는 클라이언트소켓입니다.
: PMyRec temp;
: temp = new TMyRec;
: Socket->ReceiveBuf(temp,Socket->ReceiveLength());
: ShowMessage(temp->FName);
: ShowMessage(temp->LName);
: }
:
: ////////////////////////////////////////////////////////////////////////
:
: 왜 안되는지....ㅡ.ㅜ
: 도움좀 주세요...
:
:
: 방금 다시 테스트 해본결과..
: 구조체의 스트링을 int로 바꾸니까 잘 갑니다.
: 구조체에 스트링을 넣으면 그 정확한 크기를 알수 없어서
: 제대로 전송은 못하는것 같습니다..ㅜ.ㅜ
: 어떻게 방법이 없는지요..
: 오늘 하루 종이 이거 잡고 끙끙 거리고 있습니다..
: 도움의 손길을..^^
:

+ -

관련 글 리스트
16901 [질문]소켓으로 구조체 받기 AyanamiRei 1119 2002/03/27
16939     Re:[질문]소켓으로 구조체 받기 이경문 1445 2002/03/28
16905     Re:[질문]소켓으로 구조체 받기 gongnim 2107 2002/03/27
16933         Re:Re:옷..감사 합니다...^^ 내일 곧 실험해 보겠습니다.~~[냉면먹으러감] AyanamiRei 1023 2002/03/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.