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
[1494] Re:C++Builder 클라이언트 서버 프로그램...
박지훈.임프 [cbuilder] 4035 읽음    1999-06-25 00:00
임펠리테리입니다.

이쪽 클라이언트 소켓에서 서버쪽으로 접속하려고 하는데 서버의
소켓이 오픈되어있지 않을 경우, 그러니까 말씀하신 것처럼 서버
프로그램이 다운되었거나 아예 실행되어있지 않은 경우에는
ESocketError가 발생합니다.

이것을 막는 방법은 간단합니다. 해당 클라이언트 소켓의 OnError
이벤트의 핸들러에서 ErrorCode를 0으로 세팅해주면 되죠. 이렇게
하면 이벤트 핸들러 내에서 에러 상황이 잘 처리되었다고 알려주는
결과가 됩니다.

그런데, 클라이언트의 에러 이벤트는 연결 실패의 경우 뿐 아니라,
연결되어있다가 끊어진다든지, 혹은 데이터를 주거나 받는 여러 경우에
발생할 수 있습니다. 그러므로, 다음과 같이 연결 시도중에 에러가
발생한 것인지를 검사해주어야 합니다.

void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
    if(ErrorEvent == eeConnect)
    {
        ShowMessage("서버와의 연결에 실패하였습니다.");
        ErrorCode = 0;
    }
}

그럼 도움되시길...




: 안녕하세요.
: 저는 C++Builder 3.0으로 CTI 프로그램을 하고 있는 사람입니다.
: 다름이 아니고
: 제가 FAX respons 프로그램을 하고 있는데
: 제 프로그램은 Client이고 다른쪽에 TM Server가 있습니다.
: 문제는 서버가 다운 되거나 처음 부터 켜져 있지 않았을때
: 제 프로그램에서 error 10061 ESocketError 란 예외현상이
: 발생하더군요.
: ..
: 예전에는
: ClientSocket1->Active = true를 해두면 이런 경우 문제가 없었던 같은데 제가 잘못 알고 있는 것인지....
: 그리고 다른 문제는 서버 프로그램을 내렸다가 다시 살리면
: 처음 내릴때 Disconnect 이벤트는 발생하는데 ..
: 제 접속 하지 않는군요.
:
: (실제로 Unix로 C/S프로그램을 해보면 이런 경우 당연히 Client는 서버가 살때까지 무한 루프지만...)
: 방법이 없을까요.
:
: 도움이 되지 않아도 답장 주시면 감사히 받겠습니다.
: 그럼 안녕
: ......_^^_...........
:
: ---------------------
:     |       |       |
: ---------------------
:

+ -

관련 글 리스트
1490 C++Builder 클라이언트 서버 프로그램... 장중호 3650 1999/06/25
1494     Re:C++Builder 클라이언트 서버 프로그램... 박지훈.임프 4035 1999/06/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.