Q&A

  • 인디서버가 메세지를 받을때..
인디서버가요 클라이언트에서 메세지를 받았을때..
그 메세지가..어떤 클라이언트에서 받은건지 어떻게 알 수 가 있는지요??
예를 들어...10개의 클라이언트가 접속 되어있다고 하고..
그중에서 3번째로 연결된 클라이언트가 메세지를 보냈을때
그 메세지가..3번째 클라이언트가 보냈다는 사실을 알 수 있는 방법 좀 알려주세요..

인디 채팅 데모 소스를 보긴 봤는데..넘 복잡해서..
이해가 안가서 혹시 쉬운 방법이 있나 해서 질문을 드려봅니다...ㅠ.ㅠ
3  COMMENTS
  • Profile
    최용일 2002.12.21 05:33
    안녕하세요. 최용일입니다.

    몇번째인가는 별로 중요하지 않을거 같은데... 메세지를 받을때 파라매터로 오는 AThread: TIdPeerThread에 모든 정보가 다 들어있는데 이걸 이용하면 안되나요?

    꼭 몇번째인가가 필요하다면 리스트하나 만들어서 클라이언트가 접속하고 끊을때 리스트에 클라이언트정보(IP, TIdPeerThread)를 넣으시고 메세지를 받으면 이 정보와 비교를 해보시면 되겠죠...

    ^^ 항상 즐코하세요...

  • Profile
    도니 2002.12.21 19:52
    답변 감사하고여
    그걸 이용할라면 어떻게 이용해야하나요?
    클라이언트가 사설아이피를 쓰는경우가 있어서 그런데..
    사설아이피의 경우 IP정보만으로는 전송을 하지 못하자나요..
    그럴때는 어떻게 해야하는지?

  • Profile
    최용일 2002.12.22 02:50
    안녕하세요. 최용일입니다.

    사설아이피여도 상관이 없습니다. UDP라면 상관이 있지만 TCP라면 사설아이피를 가진 클라이언트가 서버에 접속을 했다면 클라이언트와 통신이 가능합니다. 물론 서버에서 클라이언트로 접속하는 것은 불가능하지만 클라이언트가 연결한 통로로 통신이 가능합니다.

    때문에 인디TCP컴포넌트의 Sender로 들어오는 AThread: TIdPeerThread가 아주 중요합니다. 이걸 이용해서 클라이언트로 통신을 할 수 있습니다. 서버에서 클라이언트로 연결하는게 아니라 이미 연결된 통신경로인 AThread를 이용하는거죠...

    사용법은 TIdTCPClient와 거의 비슷합니다...

    AThread.Connection.ReadXXX;
    AThread.Connection.WriteXXX;

    ^^ 항상 즐코하세요..