Q&A

  • socket 통신시 복수 클라이언트 서비스방법..
안녕하세요

음.. socket 통신을 공부하고있습니다.

만약에 하나의 client socket 이 지연된다든지 무한루프상태가 되면은

다른 socket 의 서비스를 처리할수 없다는것에서 문제가 생깁니다.

간단하게 client 가 접속하여 서버는 client 에서 ID 와 PASS 를 전송하게 기다리고 있을때

다른 client 접속처리는 어떻게 해야만 하는지..

//--------  
procedure TFrm_main.server_socketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  var s : string ;
begin

  while s  = ''  do s := socket.ReceiveText;   //ID 받기를 기다림..
  if s := '1111' then showmessage('인증성공')
    else showmessage('인증실패');

end;

Thread 구동방식이 있다고 하는데 아직 어떻게 socket 에 접목을 시켜야 하는지 막연하기만 합니다..

각각의 클라이언트 thread 를 생성해서 처리한다면 100접속은 100개의 스레드가 생기는것인데 그렇게 하는 방법인지..

넌블럭킹 방식과 스레드블럭킹 방식의 차이와 어떤작업에 적합한지 궁금합니다..

고수님들의 조언 부탁합니다..
1  COMMENTS
  • Profile
    Mr. Ziker 2003.08.16 08:54
    안녕하세요....

    Connect 이벤트에서 While를 돌리지마시고
    ClientRead 이벤트에서 데이터를 받아 처리 하도록 하시는게 좋겠군요.