Q&A

  • serversocket 에서의 질문




procedure TForm1.ServerSocketClientConnect(Sender: TObject;

Socket: TCustomWinSocket);



begin

socket.Connect(i);

i := i + 1;

end;







procedure TForm1.ServerSocketClientDisconnect(Sender: TObject;

Socket: TCustomWinSocket);



begin

i := i - 1;

end;







procedure TForm1.ServerSocketClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

movedata:string; // 전송받은 data



m:integer;



begin

movedata:=socket.ReceiveText;



for m:=0 to i - 1 do

begin

ServerSocket.Socket.Connections[m].SendText(movedata);

end;

end;



이렇게 사용하면 접속된 모든 사용자에게 내용을 보내는 것으로 알고 있거든요..



i 는 전역 변수로 선언되어 있습니다.



궁금한것은 Serversocket.socket.connections[i] 에서 i의 기능입니다.



예를들어) 0,1,2,3,4,5,6,7,8,9 이렇게 순차적으로 접속이 되면 자연적으로

i는 순차적으로 증가 되는데 그럼 이번에는 3번이 접속을 해지하면 어떻게 되나요?

4,5,6,7,8,9 번이 순서대로 3,4,5,6,7,8 로 변경이 되는 건가요?

아니면 임의적의로 배열이 달라 지나요?

그것도 아니면 9번이 3번으로 이동되나요?

궁금합니다.



고수님들 답변부탁 드려요.



lee_wha@hanmail.net





2  COMMENTS
  • Profile
    조병기 2000.08.04 19:22
    > 궁금한것은 Serversocket.socket.connections[i] 에서 i의 기능입니다.

    >

    > 예를들어) 0,1,2,3,4,5,6,7,8,9 이렇게 순차적으로 접속이 되면 자연적으로

    > i는 순차적으로 증가 되는데 그럼 이번에는 3번이 접속을 해지하면 어떻게 되나요?

    > 4,5,6,7,8,9 번이 순서대로 3,4,5,6,7,8 로 변경이 되는 건가요?

    > 아니면 임의적의로 배열이 달라 지나요?

    > 그것도 아니면 9번이 3번으로 이동되나요?

    > 궁금합니다.

    >



    4,5,6,7,8,9 번이 순서대로 3,4,5,6,7,8로 변경이 됩니다.

  • Profile
    Hoon Reader 2000.08.07 08:32
    제가 실험을 해보았을때는 Index가 그대로 유지되는 것 같더군요.



    즉, 어떤 Clinet의 연결이 현재 Index 값으로서 8로 설정이 되어 있다면

    그 이전 Index 값의 연결이 해지 되더라도 번호가 순서대로 다시 할당되는 일은 없습니다. 즉, 한번 8은 계속 8입니다.



    혹시 제가 틀렸을지 모르니 다시 한번 Test 해보세요.