Q&A

  • 서버에서 어느클라이언트가 접속했는지...
예로 채팅 프로그램에서 어느 한 클라이언트가 메세지를 보냈다면...
ServerSocket에서는 몇번째 ClientSocket이 보낸건지를 알아보려면
어떻게 해야 하나요...
1  COMMENTS
  • Profile
    이현철 2002.07.23 04:52
    몇번째 Client 가 보낸것이지 보다 어떤 Client가 보낸것이지
    판단해야 더 정확합니다..

    만약 클라이언트가 서버에게 메세지를 보냈다면 아래와 같이 서버소켓의
    이벤트에 메세지를 보낸 클라이언트의 ip를 알수 있습니다
    procedure TServerComm._OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
    var
      _Message  : String;
      IpAddress : String;
    begin
      _Message  := Socket.ReceiveText;            {데이터 수신}
      IpAddress := Socket.RemoteAddress;          {리모트 클라이언트의 Ip주소저장}
        .
        .
        .

    그러면, 여러명이 서버에 접속된 상태에서 특정 클라이언트를 찾으려면
    아래와 같이 하면 됩니다.

    var
      num : Integer;
    begin
      for num := 0 to ServerSocket.Socket.ActiveConnections -1 do
        if ServerSocket.Socket.Connections[num].RemoteAddress = IpAddress then
           { To Do } shomessage('빙고');




    from neosiz.com