안녕하세요..
델마당에도 질문을 올렸었는데.. 아무런 해답을 얻지 못해서 이곳에도 글을 올립니다..
서버 프로그램과 클라이언트 프로그램이 있습니다.. 이들은 각각 델파이 6에서 기본적으로 제공하는 TClientSocket과 TServerSocket을 사용하고 있구요..
그리고, 클라이언트에서 서버에 특정값을 요구시 서버에서는 해당 값을 응답하는 형식으로 만들었습니다..
그런데, 문제는 서버 프로그램이 항상 클라이언트 프로그램보다 먼저 켜저 있다는 보장이 없다는 것입니다..
따라서 클라이언트 프로그램이 먼저 켜저 있다가 나중에 서버 프로그램이 실행되면 자동으로 연결할 수 있도록 클라이언트 프로그램에 타이머를 달아서 매 3초마다 연결을 시도하도록 아래와 같이 코딩하였습니다..
if not(sckClient.Active) then
sckClient.Active := True;
이렇게 해 놓고, sckClientError 이벤트에는 오류코드를 0으로 하고 소켓을 끊는 것으로 했습니다.
ErrorCode := 0;
sckClient.Close;
이렇게 했음에도 불구하고 서버가 꺼진 상태에서 소켓 연결을 시도하게 되면 10055 오류가 발생합니다. 내용은 그림과 같구요..
제 프로그램 방식에 어떤 문제가 있는지요? 이를 해결할수 있는 방법은 없을까요?
또, 여러분들께서는 서버가 켜지면, 구체적으로 서버 프로그램이 구동되면 클라이언트가 자동으로 접속되게끔 하고자 하신다면 어떤 방법을 쓰시는지요?..
부탁드립니다....