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
[47219] UDP 기반 서버 테스트프로그램을 작성중인데요
혀니 [delphic] 1146 읽음    2006-11-29 12:36
UDP 기반 서버 테스트 프로그램을 작성중인데요

void __fastcall TForm1::SockRecvData()  
{
    WSADATA wsaData;
    SOCKADDR_IN servAddr;
    char message[BUFSIZE];
    SOCKADDR_IN clntAddr;
    int sock_len;
    int str_len=0;   // 수신한 바이트수



        if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0) // 윈속 초기화
        {
            Showmessage("Error 1");
        }

        hUDPSock = socket(PF_INET, SOCK_DGRAM, 0);// IPPROTO_UDP);   //소켓연결

        if (hUDPSock == INVALID_SOCKET)
        {
            Showmessage("Error 2");
        }

        memset(&servAddr, 0, sizeof(servAddr));
        servAddr.sin_family = AF_INET;    // 2
        servAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
        servAddr.sin_port = htons(atoi(servPort));

        if ( bind(hUDPSock, (SOCKADDR*) &servAddr, sizeof(servAddr)) == SOCKET_ERROR )
        {
            Showmessage("Error 3");
            exit(3);
        }

        sock_Count = 0;
        bLoop = true;

        while ( bLoop )
        {
            sock_len = sizeof(clntAddr);
            str_len = recvfrom(hUDPSock, message, BUFSIZE, 0,(SOCKADDR*)&clntAddr, &sock_len );
             
            if (str_len > 0)
            {
                sock_Count++;
            } else if (str_len > 9999999)
                    sock_Count = 0;
        }
}
위와 같이  소켓을 생성하고 데이타가 넘어오면 카운트 되게 할려고 하는데요
'recvfrom'이 얼마나 데이타를 처리할수 있는지 알수가 없습니다.
몇건 안되는건 처리를 잘하는거 같은데 1000이 넘어가버리니까 프로그램이 다운 되어버리네요...
어디서 잘못한걸까요?
그리고 위 소켓은 초당 몇개까지 데이타를 안정적으로 받을수 있을까요?

+ -

관련 글 리스트
47219 UDP 기반 서버 테스트프로그램을 작성중인데요 혀니 1146 2006/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.