Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[9534] [질문] Indy (인디) 에서 가변 데이터 보내는 방법을 알려주세요..
라이크유 [yoonhome] 1145 읽음    2004-05-28 07:21
인디로 간단한 메신저를 만들고 있습니다.

클라이언트에서 서버에 접속을 하면 서버의 Connect 이벤트에서  접속한 클라
이언트의 사용자명과 IP 를 하나의 TStringList에 추가 시킵니다.

이렇게 계속 클라이언트가 접속을 하였다가 접속을 끊게 되면 TStringList 에 Add, Delete 가 되는데 문제는 이 TStringList 를 클라이언트에 보내는것이 문제입니다. 가변길이라 어떻게 보내야 할지 모르겠습니다!!

또 클라이언트에서 받을때는 어떻게 처리해 주어야 하는건가요?
이것때문에 이틀을 삽질 해봤지만... 실패하였습니다.

제발 좀 알려주세요

rocedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);  // 접속시
var
  List : TList;       // AThread(접속자) 를 저장하기 위한 리스트
  Loop : Integer;     // 클라이언트 모두에게 메시지 전송을 위한 루프문 변수
  IdpeerThread : TIdPeerThread;  // 접속자를 보다 간단히 표시 하기 위해
  testPacket : string;

begin

  userList:=TStringList.Create;   // 접속시 사용자명 리스트 생성
  AThread.Connection.ReadBuffer(PacketInfo,BufferSize); // 버터를 읽어라
  PacketInfo.userIP := AThread.Connection.Socket.Binding.PeerIP; // 읽은 버퍼에 접속클라이언트 IP를 저장
  userList.Add(PacketInfo.userName+','+PacketInfo.userIP); // 접속된 사용자명과 IP 를 리스트에 저장
  userList.Sort;
  List := IdTCPServer1.Threads.LockList;  // 모든 클라이언트에게 전달하기 위해 접속된 클라이언를 리스트로 만든다.
  try
    for Loop := 0 to List.Count-1 do Begin
      IdpeerThread := TIdPeerThread(List.Items[Loop]); // 한개의 클라이언트를 보기 쉽게..
      try
        testPacket:='yoonhome';
        dpeerThread.Connection.WriteBuffer(userList,sizeof(TStringList)); //이렇게 쓰면 전송이 안되는군요.. 가변길이라 그런것 같은데.. 어떻게 바꿔 줘야 할까요?
      except
        IdpeerThread.Stop;
      end;
    end;

  Finally
      IdTCPServer1.Threads.UnlockList; // 변동을 못하게 햇던 리스트를 풀어 줌
  end;
end;

제가 엄청 초보인만큼 쉽게 설명 부탁드려요 ㅜㅜ

+ -

관련 글 리스트
9534 [질문] Indy (인디) 에서 가변 데이터 보내는 방법을 알려주세요.. 라이크유 1145 2004/05/28
9537     Re:[질문] Indy (인디) 에서 가변 데이터 보내는 방법을 알려주세요.. civilian 1524 2004/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.