임프랍니다.
소켓 프로그래밍을 해본지가 거의 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입니다.
:
: 좀 가르쳐 주세요.
: