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
[20124] Re:Q&A에 있는 질문을 반복해서 올려서 죄송합니다. 구조체를 소켓으로 전송입니다.
마법감자 [magicptt] 881 읽음    2002-07-15 11:57
에..우선 포인터에 대해서 공부를 해보시길 권장합니다.
소켓 전송 전에 저런 구조체를 '파일'로 저장하는걸 연습하시면 좀더 이해가 빠를것 같네요.

우선..

typedef struct MyRec
{
   char* m;
   char* n;
}TMyRec;

이걸 전송하면, 내용이 어쨌던 간에 무조건 8바이트가 전송됩니다. (윈도우 플랫폼)
그리고 내용은 주소값이 됩니다.

원하시는 형태로 동작하게 하고 싶으시면 구조체를 다음과 같이 바꿔야 합나다.

typedef struct MyRec
{
   char m[5]; // NULL 포함, 보통 소켓프로그래밍에서 NULL은 전송하지 않습니다.
   char n[5]; // NULL 포함
} TMyRec;



신혜영 님이 쓰신 글 :
: Q&A를 보면서 여러번 시도 했지만 안되요.^^
:
: 구조체
: typedef struct MyRec
: {
:   char* m;
:   char* n;
: }TMyRec;
: typedef TMyRec* PMyRec;
:
:
: 서버에서 보내는 부분...
:   char* xx="test1";--> 왜냐하면 실질적으로 string으로 받아오는 부분을 보내야 합니다.
:   char* yy="test2";
:
:   PMyRec temp;
:   temp = new TMyRec;
:   temp->m = xx;
:   temp->n = yy;
:   ServerSocket->Socket->Connections[0]->SendBuf(temp,sizeof(temp));
:   delete temp;
:
: 클라이언트 부분
:   PMyRec temp;
:   temp = new TMyRec;
:   ClientSocket->Socket->ReceiveBuf(temp,Socket->ReceiveLength());
:   ShowMessage(IntToStr(temp->m));
:   ShowMessage(IntToStr(temp->n));
:   delete temp;
:
:

+ -

관련 글 리스트
20120 Q&A에 있는 질문을 반복해서 올려서 죄송합니다. 구조체를 소켓으로 전송입니다. 신혜영 824 2002/07/15
20124     Re:Q&A에 있는 질문을 반복해서 올려서 죄송합니다. 구조체를 소켓으로 전송입니다. 마법감자 881 2002/07/15
20130         질문을 이해 못하신듯... 신혜영 763 2002/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.