저의경우는 델파이 4.0을 사용합니다..
클라이언트에서 서버쪽이 실행될때까지...접속을 timer를 사용하여
지정된 시간마다 connect을 시도합니다...
근데...한 200번이후에 connect을 하면 다음같은 메세지가 나타나고 죽습니다.
window socket error 10055 on api connect
답변해 주시면 감사하겠습니다.
ps) connect을 할때 서버가 준비가 안된상태이므로 error event가 발생하는건
당연한데, 위와 같이 200번이후에는 disconnect event도 발생하더군요...
아래는 보내주신 소스입니다.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ClientSocket1.Close;
if ClientSocket1.Active then
exit
else
ClientSocket1.Active := True;
end;
잘못된 부분 설명......
ClientSocket1.Active := True; 를 하셨어도 즉시 소켓을 사용할 수 있는 것은
아니구요, 반대로 ClientSocket1.Active := False; 가되어도 자원을 시스템에게
되돌려준 상태는 아닐 수 있습니다.
보다 정확한 방법은 ClientSocket1.Socket.Connected를 참조하는 것입니다.
만약 위와 같은 소스를 그대로 이용하시고자 한다면 다음과 같이 해보세요
procedure TForm1.Timer1Timer(Sender: TObject);
begin
// 타이머에 대한 동기화를 위해 사용합니다.
Timer1.Enabled := False;
ClientSocket1.Close;
if not ClientSocket1.Active ClientSocket1.Open;
Timer1.Enabled := True;
end;
이수한 wrote:
> 저의경우는 델파이 4.0을 사용합니다..
> 클라이언트에서 서버쪽이 실행될때까지...접속을 timer를 사용하여
> 지정된 시간마다 connect을 시도합니다...
> 근데...한 200번이후에 connect을 하면 다음같은 메세지가 나타나고 죽습니다.
>
> window socket error 10055 on api connect
>
> 답변해 주시면 감사하겠습니다.
>
> ps) connect을 할때 서버가 준비가 안된상태이므로 error event가 발생하는건
> 당연한데, 위와 같이 200번이후에는 disconnect event도 발생하더군요...