Q&A

  • 채팅에서 방 만들기 기능을 어떻게 해야할지 모르겠네요.
안녕하세요.
indy 샘플로 서버와 클라이언트간의 메세지 주고받기는 이해를 했습니다.^^v

그런데 방만들기 기능을 넣으려 하는데 어떻게 해야 하는지 도저히 감이 안 오는군요.

한말씀 해주소소... 꾸벅..
2  COMMENTS
  • Profile
    김병곤 2003.04.17 18:47
    화상채팅쪽으로 관심이 많으신 모양이네요.
    우선 프로그램의 큰 틀을 설계하십시오.
    데이타베이스와 비슷하게 생각하시면 될거 같습니다만.
    (비유가 적절할지...^^;;)
    채팅방을 구현하기 위해서는 채팅방에 대한 정보들을 관리하는
    정보를 프로그램이 가지고 있어야 하겠지요.
    그리고 사용자 정보필드에도 예를 들면 방번호 같은 정보를 가지고
    있어야 할겁니다. 그래서 이 정보들을 방번호를 키로 적절히 연결해주시면서
    프로그램 하면 되겠네요. 물론 실제 구현에서는 더욱 복잡합니다만 기본적인
    방법론은 이와같다고 보시면 될거 같습니다.


  • Profile
    델파이스 2003.04.17 19:40
    매번 답변해 주시니 넘 감사드립니다.
    화상채팅쪽으로 관심이 많습니다. 정말 신기해서요. ^^
    델파이를 시작한지 2주 되어가는데요. 혼자서 책보고 하려니 어렵네요.
    이해가 안가는 부분도 많구여. 의지할곳은 게시판뿐입니다.ㅡ.ㅡ;;
    질문 하나 올려놓고 답변이 올때까지 계속 게시판 접속중... ^^
    질문 또 드릴께요.


    procedure TfmServer01.Broadcast(Msg: String);
    var
            i: Integer;
            ClientList: TList;
    begin
            ClientList := IdTCPServer1.Threads.LockList;
            try
                    for i := 0 to ClientList.Count - 1 do
                            TIdPeerThread(ClientList.Items[i]).Connection.Writeln(Msg);
            finally
                    IdTCPServer1.Threads.UnlockList;
            end;
    end;

    서버에 접속한 클라이언트들의 리스트는 ClientList 이것이 가지고 있어서 루프를 돌면서 클라이언트에게 메시지를 보낼수 있는데요.

    채팅방의 정보는 어떻게 저장을 해서 클라이언트들에게 메시지를 보내줘야 하는지 모르겠어요.

    1.채팅방 이름
    2.방장
    3.방에 접속되어 있는 클라이언트 리스트

    기본적으로 3가지 정보만 가지려구 해요.

    방번호라는 개념도 이해가 안가서요..

    클라이언트가 방을 하나 만든다면 그 방에 대한 정보를 서버에 저장을 해야 할텐데 서버에서 해줘야 하는 작업들을 잘 모르겠어요.

    방이름배열[]
    방장배열[]
    방에 접속되어 있는 클라이언트배열[]

    이렇게 생성해서 배열의 인덱스 값(방번호????)과 일치하는것들을 뽑아 와야 하는지..

    어케 해야 좋을런지......큭.


    어떤 변수를 선언해서 어떻게 가지고 있어야 할지...큭..

    제가 넘 모르져?

    지송합니다..