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
[37568] Re:[질문]소켓통신에서..
김태선 [jsdkts] 1020 읽음    2004-10-12 09:38
보내는 만큼 온다는 보증이 없습니다.
그래서 도착한 데이타양으로 판단하는 것은 무리가 있습니다.
그래서 어느 정도의 양이 전송된다는 데이타는 먼저 보내고, 그 다음 실제 데이타를 보내는 것이
좋습니다.
데이타를 받는 측에서는 데이타가 오면 버퍼에 계속 누적했다가 목표한 만큼이 오면 그것을 처리하는
방식으로 하면 됩니다.
다시 말해, 패킷의 정보를 헤더처럼 만들어 먼저 보내는 방식이 좋습니다.

raw 소켓 함수보다는 TClientSocket,TServerSocket 컴포넌틑를 이용하시는게 편리합니다.

연구해 보세요.. ^^;


뽀리 님이 쓰신 글 :
: 구조체로 서버에서 보내구여..8개의 구조체 데이터를...한개의 구조체가 470BYTE구여..8개니깐..전체..3760BYTE를
:
: Send하게 되는데...받는쪽에서 이걸 어떻게 처리해야하는지..
:
: recvfrom (sockfd, (char *)Data, ?? , 0, (struct sockaddr *)&ReceiverAddr, &Size_RecvAddr);
:
: 받는쪽에도 크기가 똑같은 470BYTE의 구조체를 생성해야 하는데....전체 날라온 BYTE에서..생성한 구조체 470BYTE
:
: 를 나눠서 Count가 8개라는걸 알려고 하는데...recvfrom에서 버퍼사이즈를 어떻게 잡아줘야 하는지 ...잘모르겠네염..
:
: 대략 크게 잡아주면...예를들어 10000BYTE라고..잡으면 실제적으로 버퍼에 찬 데이터의 양을 어떻게 알수있죠? 클라이
:
: 언트에서도 3760BYTE라는걸 알아서...같은 구조체를 아래와 같이 생성하고 싶은데..
:
: struct TData *Data = new TData[....Count]...

+ -

관련 글 리스트
37556 [질문]소켓통신에서.. 뽀리 793 2004/10/11
37568     Re:[질문]소켓통신에서.. 김태선 1020 2004/10/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.