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
[51113] 인디서버에서 Write할때 뻗는 현상..
DoyongID [doyongid] 1735 읽음    2007-10-31 15:09
Size = AContext->Connection->IOHandler->ReadSmallInt();
        AContext->Connection->IOHandler->ReadBytes(Array, Size, false);
       
        TList *LockList = TCPServer->Contexts->LockList();

        try
        {
            printf("진입함\n");
            // -------------------------------------------
            for(int i = 0; i < LockList->Count; i++)
            {
                lpContext = (TIdContext *)(LockList->Items[i]);          

                if(lpContext->Connection->IOHandler->Connected())
                    lpContext->Connection->IOHandler->Write(Array);
            }
            // -------------------------------------------
            printf("빠져나감\n");
        }
        __finally
        {
            TCPServer->Contexts->UnlockList();
        }
    }

서버의 OnExecute쪽은 위와 같고요..

클라이언트의 경우 TTimer를 이용해서 1/1000초마다 1번씩 서버에 13바이트 크기의 패킷을 보냅니다..
서버는 이를 받아서 모든 클라이언트에 재전송하고요..

10개의 클라이언트를 접속해서 테스트하는데, 얼마간 시간이 지나면 주석처리 부분에서 그냥 멈춥니다.. "진입함" 까지만 뜨고, 그냥 감감 무소식입니다..

클라이언트 접속을 해제하면 OnDisconnect()가 발생하기는 하더군요.. 서버가 전부 다운된건 아닌 것 같고, 일단 저 부분에서 그냥 멈추는 것 같습니다.

패킷 전송량이 과도하게 초과해서 그럴까요? 서버 라인이 ADSL이긴 합니다.. 그렇더라도 무슨 에러메시지를 뱉어야 접속을 끊던가 할텐데.. 이틀동안 이것때문에..ㅡ.ㅡ

아시는 분 답변 부탁드립니다..

+ -

관련 글 리스트
51113 인디서버에서 Write할때 뻗는 현상.. DoyongID 1735 2007/10/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.