|
에러가 나면, 예외를 날립니다.
그걸 받아서 처리해 주시면 됩니다.
try {
ClientSocket1->Open();
}
catch(Exception &E) {
ShowMessage("접속실패");
}
에 그리고.. send(), recv()의 기능을 하는 함수는 살펴보질 않았네요.
그것도 익셉션을 날리거나, 리턴값으로 에러확인을 할수 있게 해놨을겁니다.
양정석 님이 쓰신 글 :
: TClientSocket과 TServerSocket을 사용하여 소켓 프로그램을 작성하고 있습니다.
: NonBlocking mode에서 작업할때는 에러의 발생을 OnError 이벤트의 발생에서 처리해 줄수가
: 있었습니다.
: 그런데 Blocking mode로 소켓을 바꾸고 나서는 Error가 발생해도 에러를 OnError이벤트가
: 발생하지 않습니다.
:
: 예를 들어서 서버가 준비되지 않았을때 발생하는 에러 코드가 10061입니다
: NonBlocking mode에서는 아래와 같이 처리 해 주었습니다만
:
:
: void __fastcall TFrmMain::ClientSocketError(TObject *Sender,
: TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
: {
: if(ErrorCode == 10061){
: ShowMessage("서버가 응답하지 않습니다.");
: ErrorCode = 0;
: }
:
:
: }
:
: Blocking mode에서는 어떻게 처리 해 주어야 합니까?
:
: OnError 이벤트가 발생하지 않습니다.
: 에러처리하는 방법이 있을 텐데.
:
|