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
[11069] Re:소켓 Connection 에러 시....
박지훈.임프 [cbuilder] 1217 읽음    2001-09-14 01:30
임프랍니다.

소켓 프로그래밍을 해본지가 거의 2년이 다되어가기 땜시.. 지금으로선 모든게 가물거려서 확실한 해답을
드리는 것은 무리구요.
제가 예전에 소켓 에러처리에 대한 답변을 한 것이 있으니 일단 그걸 적용해보시구요.
(제가 쓴 글인데도 무슨 생각을 하면서 쓴 건지 잘 기억이 안납니다.)
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=4505

그리고, 그래도 해결이 안되시면, 조재영님의 다른 글도 도움이 될지 모르겠습니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=5026

그럼 이만... (부디 해결하시길...)


권선미 님이 쓰신 글 :
: 제 어플리케이션에... 두개의 소켓이 있는데요.
: 차례로.. Connection을 맺을려고 합니다.
: OmifSock이 먼저 서버와 컨넥션 시도를 하구요..
: 컨넥션이 되면 OmifSock2가 서버와 컨넥션을 시도 합니다.
: 물론 OmifSock이 컨넥션 에러가 나도 OmifSock2가 컨넥션시도를 할 수 있겠급 해놓았습니다.
: 아래의 소스가 OmifSockError 함수 입니다.
:
: void __fastcall TFORM_MAIN::OmifSockError(TObject *Sender,
:       TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
: {
:          if(ErrorEvent == eeConnect)
:         {
:                 ShowMessage("SMSG Primary System is not Available");
:                 ErrorCode = 0;
:                 RecieveResultFlag[SYSTEM_A]     =       true;
:         }
:
:        CloseOmifSockA();
:        dual_system[SYSTEM_A].STATUS = 1;
:        OpenOmifSockB();
:
:
: }
:
: 근데 문제는 OmifSock이 컨넥션 에러가 났을 경우엔 위의 코드를 잘 수행해서
: "SMSG Primary System is not Available"이란 메세지를 뿌리고 OmifSock2가 Connection 시도를 합니다.
: 근데 OmifSock이 컨넥션 된 후 OmifSock2가 Connection Error가 날 경우엔 OmifSockError 함수를
: 수행하지 않는 것 같습니다.
: OmifSock2Error한수 소스는 아래와 같거든요
:
: void __fastcall TFORM_MAIN::OmifSock2Error(TObject *Sender,
:       TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
: {
:         if(ErrorEvent == eeConnect)
:         {
:                 ShowMessage("SMSG Secondary System is not Available");
:                 ErrorCode = 0;
:                 RecieveResultFlag[SYSTEM_B]     =       true;
:         }
:
:        CloseOmifSockB();
:        dual_system[SYSTEM_B].STATUS = 1;
:
: //양 시스템 정상으로 로그인이 되었으면 화면을 보여줌
:        if(dual_system[SYSTEM_A].STATUS == 0 || dual_system[SYSTEM_B].STATUS == 0)       {
:                 FORM_MAIN->Show();
:                 FORM_AUTHOR->Hide();
:        }
:        else     {
:                 ShowMessage("Can't Connect to both System");
:                 Close();
:        }
: }
:
: 보는바와 같이 Connection 하다 에러가 나면 "SMSG Secondary System is not Available"
: 메세지를 뿌려야 하는데 그 메세지가 아니라 Windows에서 보내는 에러 메세지가 뜹니다.
: 똑같은 소켓 타입이구 같은 에러 코드인데 왜 한쪽만 제대로 메세지를 뿌리나요?
: 서버는 둘다 Sun 장비의 Unix입니다.
:
: 좀 가르쳐 주세요.
:

+ -

관련 글 리스트
11017 소켓 Connection 에러 시.... 권선미 897 2001/09/13
11069     Re:소켓 Connection 에러 시.... 박지훈.임프 1217 2001/09/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.