|
안녕하세여.
Builder초보입니다.
TClientSocket을 사용해서 서버와 통신을 하고 있는데여...
임의로 제가 서버 프로그램을 죽였을때
클라이언트 프로그램에서 socket error가 뜨게 되는데여....
이 때, 클라이언트 프로그램에서 socket error에 관련된 메세지 라든지
이런것들을 처리해 주고 서버와의 connection 끊김 상태로 있게 되는데여...
저는 이 끊김 상태에 있다가 다시 서버 프로그램이 살아나게 되면 사용자의 조작없이도
클라이언트에서 자동으로 서버에 접속을 해서 다시 데이타를 주고 받도록
클라이언트 프로그램을 만들고 싶거든여....
그래서 여러가지 시도를 해 봤는데.... 잘 안되서 어떻게 하면
자동으로 다시 서버와 connection을 맺고 데이타를 주고 받도록 할 수 있는지
여러 고수님들의 도움을 받고자 이렇게 글을 올립니다.
아래의 코드가 제가 소켓 에러시 처리하는 부분을 만든건데여...
잘 안되여... 바보 아니냐고 욕하지 마시고 방법을 알려주심 고맙겠습니다.
그럼 이만
---------------------------------------------------------------------------
void __fastcall TBusForm::ClientSocket1Error(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
// 서버를 강제로 죽였을 때 10053 의 에러가 뜨더군여
if((ErrorCode == 10061)||(ErrorCode == 10053))
{
// ShowMessage("서버가 응답하지 않습니다.");
ErrorCode = 0 ;
// disconnect시에 처리해 주는 루틴을 넣기 위해 ClientSocket1Disconnect를
// 넣었습니다.
ClientSocket1Disconnect(Sender,Socket) ;
Application->Initialize();
Application->CreateForm(__classid(TBusForm), &BusForm);
Application->Run();
}
}
참고로 Clientsocket1은 초기에 Enabled 값을 true로 해 놨습니다.
----------------------------------------------------------------------------
|