안녕하세요.
저는 여기에서 많은 자료를 참고 하고 있고 조언도 많이 얻었습니다.
다시한번 조언 부탁 드립니다.
제가 서버소켓과 클라이언트 소켓을 따로 써서, 서버에 클라이언트가 접속을
하도록 하였습니다. 그러다가 서버에 접속된 클라이언트 중에 어떤 특정 클라이언
트에게만 메시지를 보내야 되는데 어떤 방법이 있는지 모르겠습니다.
조언 부탁합니다. (단, 서버측에서만 코딩을 한다면, 예를 들어 IP 주소나 혹은
'ServerSocket1.Socket.Connections[i]'과 같은 것을 사용해서 특정인에게만
보낼수 없습니까? )
>
> 안녕하세요.
>
> 저는 여기에서 많은 자료를 참고 하고 있고 조언도 많이 얻었습니다.
>
> 다시한번 조언 부탁 드립니다.
>
> 제가 서버소켓과 클라이언트 소켓을 따로 써서, 서버에 클라이언트가 접속을
>
> 하도록 하였습니다. 그러다가 서버에 접속된 클라이언트 중에 어떤 특정 클라이언
>
> 트에게만 메시지를 보내야 되는데 어떤 방법이 있는지 모르겠습니다.
>
> 조언 부탁합니다. (단, 서버측에서만 코딩을 한다면, 예를 들어 IP 주소나 혹은
>
> 'ServerSocket1.Socket.Connections[i]'과 같은 것을 사용해서 특정인에게만
>
> 보낼수 없습니까? )
위의 답변들이 너무 잘되어 있어서 뭐라 적기가 그러네요...^^
제가 한 방법을 적어놓고 갈렵니다.
첫번째 할일: 클라이언트가 접속할때 (서버의 connection 이벤트) 마다 리스트박스 하나 올려놓구
선 접속하는 놈 마다 ip를 받아놓는다.
listbox1.Items.Add(socket.RemoteAddress);
두번째 할일: 접속한놈 에게 메세지 보내기 ^^
물론, 접속자가 서버에 무언가를 요청해야 겠죠..(서버의 clientread 이벤트일때)
우선
var
i : integer;
begin
// 일단 변수 i에다가 접속한 놈의 ip를 받아서리....
i :=listbox1.Items.IndexOf(socket.RemoteAddress);
serversocket1.Socket.Connections[i].SendText('멜롱');
// 이렇게 하면.. 리스트 박스에서 socket.RemoteAddress 했는 놈의
인덱스를 가지고와서리.. 보내는 겁니다.
테스트 해보시면 알겁니다.
그럼...