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
[18948] Re:소켓에러에 대한 처리에 대한 질문입니다.
유영인.Chris [cuperido] 1172 읽음    2002-05-28 14:08
저번에 똑같은 답변을 해드린적 있는데.. 혹시 못보셨나 해서.. 다시 올립니다..

소켓에서의 에러는 보통 OnError에서 모두 발생합니다.

OnError이벤트에서 아래와 같이..

//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{

ErrorCode = 0;

}
//---------------------------------------------------------------------------

이렇게 설정해 주시면.. 소켓에 관한 모든 에러가 무시됩니다. 따로 별도의 처리를 해주시려면, ErrorCode를 보시고 그 해당 에러에 대한 처리를 해주시면 되겠지요.

그리고 안전(?)을 위해 OnDisconnect 이벤트에서도 모든 것을 초기화 시키고, Disconnect 상태로 만들어 주는 역할도 좋겠지요.

이런 간단한 문제가 아니었나요? -_-a


참새 님이 쓰신 글 :
:
:  소켓을 사용해 서버에 접속하여 관련 정보를
:  받아서 표시해 주는 프로그램을 작성하였습니다.
:  그런데 문제가 있습니다. 서버가 혹 잘못된 데이타를
:  보내거나 서버와의 접속이 끊어지면 소켓이 포인터를
:  벗어난 곳에 쓰기를 시도하였다는 메시지가 자꾸 나옵니다.
:  서버와의 접속이 끊어지면 계속해서 접속시도를 하기
:  때문에 이런 메시지는 보이지 않았으면 합니다.
:  그리고 서버와의 접속이 끊어지거나 잘못된 데이타는
:  그냥 버리도록 하는 방법이 없을까요?
:  글을 읽어보니까 try, catch, exception, finally 등을 이용하면
:  될 것 같은데 제가 보고 이해할 만한 예제가 없어서
:  처리가 안되고 있습니다.
:  참고로 넌블록킹소켓을 사용했을 때 자꾸만 어싱크 소켓에러가
:  발생해서 그냥 블럭킹 소켓을 사용하고 있습니다.
:  글을 보면 넌블럭킹소켓이 좋을 것 같은데 자꾸만
:  에러 메시지가 나와서 그냥 편하게 블럭킹 소켓으로
:  설정했습니다. 이 두가지의 차이를 알았으면 좋겠습니다.
:  그리고 앞에서 말씀드린 에러 메시지의 처리에 대한
:  조언을 부탁드립니다. 가능하시면 작은 예제나 혹은
:  헤더파일에 어떤 함수를 어디에 추가해야 하는 지 등에
:  대한 자세한 설명 부탁드립니다. 그럼 새로운 한주도
:  행복하세요..

+ -

관련 글 리스트
18923 소켓에러에 대한 처리에 대한 질문입니다. 참새 844 2002/05/27
18948     Re:소켓에러에 대한 처리에 대한 질문입니다. 유영인.Chris 1172 2002/05/28
18967         Re:Re:소켓에러에 대한 처리에 대한 질문입니다. 답답이 876 2002/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.