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
[49236] [질문]UDP 통신에서 수신받는 버퍼 크기
unitas [kjlee1] 1959 읽음    2007-05-11 15:40
UDP 통신 프로그램을 하고 있는데 수신받는 부분은 아래처럼 구현을 했습니다.

데이타가 수신되면 아래 check_read_sock() 로 가서 read_sock()를 호출해서 데이타가 들어옵니다.
데이타는 잘 들어옵니다.
문제는 실제로 수신되는 데이타는 1036 byte 입니다.
아래처럼 2048 로 잡아도 buf 확인해보면 1024 byte만 들어옵니다.
(1024 byte만 들어온다는 것이 크기가 0~1023 까지만 잡혀있습니다.)

문제가 어디 있는지 아시는 분 부탁드리겠습니다.


void cSrvSockUtil::read_sock()
{
    BYTE buf[2048];

    int rtn;
    int cl_size;

    memset(buf, 0x00, sizeof(buf));

    cl_size = sizeof(cliSrv[s].cli_addr);

    rtn = recvfrom(lsn_sock, buf, 2048, 0, (SOCKADDR*)&cliSrv[s].cli_addr, &cl_size);

    if(rtn <= 0)
    {
        FD_CLR(cliSrv[s].cli_sock, &fd_read);
          close_sock(s);
    }
    else
        tpoll.Receiver(rtn, buf); // 수신 데이타 처리 부분 호출
}
//---------------------------------------------------------------------------

void cSrvSockUtil::check_read_sock()
{
    int s;
    tout.tv_sec=0;
    tout.tv_usec=0;

    FD_ZERO(&fd_read);
    FD_ZERO(&fd_except);

    FD_SET(cliSrv[i].cli_sock, &fd_read);
    FD_SET(cliSrv[i].cli_sock, &fd_except);

    s = select(0, &fd_read, NULL, &fd_except, &tout);

    if(s > 0)
    {
        if( FD_ISSET(cliSrv[i].cli_sock, &fd_except) )
            close_sock(i);

    if( (FD_ISSET(cliSrv[i].cli_sock, &fd_read)) )
        read_sock(0);
    }
    else if(s == 0)
        read_sock();
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
49236 [질문]UDP 통신에서 수신받는 버퍼 크기 unitas 1959 2007/05/11
49250     Re:[질문]UDP 통신에서 수신받는 버퍼 크기 금목암 2541 2007/05/14
49254         Re:Re:[질문]어디에서 설정 하나요? unitas 1191 2007/05/14
49255             Re:Re:Re:[질문]어디에서 설정 하나요? 금목암 1213 2007/05/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.