Q&A

  • indy 에서 writestream 을 사용하고 싶은데요...^^




writestream 을 사용하고 싶은데.. 어떻게 하는지 알수가 없습니다.



type

TPacket = packed Record

Header : integer;

Command : integer;

Name : string[20];

ipAddress : string[20];

end;



IdTCPClient1.WriteBuffer(packet,50);

라고 써버에 데이타를 보내면



AThread.Connection.ReadBuffer(packet,50);

이런식으로 써버에서는 데이타를 받습니다..



그런데.. 이런식으로 하니까.. 프로그램이 엄청나게 복잡해 지네요.

지금은 단순히.. 간단한 테스트 패킷이지만.. 제가 생각하는 프로그램은 다양한 종류의 패킷을 보내야 하는데.. 써버가 받을때 어떤게 뭔줄 모르기 때문에 이렇게 밖에 할수 없었습니다..

좀더 자세히 이야기 하면.. 써버에서.. 패킷의 종류를 구별하는 방법을 모르기 때문 입니다...고민을 하다 가 결국 writestream 과 readstream 을 사용하는게 제가 생각하는것과 가장 합당하다고 추리를 하게 됬습니다.. 이런 제 생각이 맞는지 모르겠네요..



그럼 수고 하세요^^

1  COMMENTS
  • Profile
    빙구 2001.02.01 18:10
    procedure TForm1.Button1Click(Sender: TObject);

    var

    datastr: TStringStream;

    begin

    datastr := TStringStream.Create('');

    datastr.ReadBuffer(packet, 50);

    tcpclient.WriteStream(datastr);

    end;

    님이 원하시는 대답인지는잘 모르겠는데.. writestream을 쓰실려면 위와 같이 쓰시면 됩니다. 그런데 제 생각입니다만 packet라는 형식의 여러 패킷을 받는다면 그냥 버퍼를 쓰셔도 무난하리라고 생각합니다. 서버에서 받을때 packet로 받으시면 되니까요..

    음..^^즐코.



    델피언77 wrote:

    >

    >

    > writestream 을 사용하고 싶은데.. 어떻게 하는지 알수가 없습니다.

    >

    > type

    > TPacket = packed Record

    > Header : integer;

    > Command : integer;

    > Name : string[20];

    > ipAddress : string[20];

    > end;

    >

    > IdTCPClient1.WriteBuffer(packet,50);

    > 라고 써버에 데이타를 보내면

    >

    > AThread.Connection.ReadBuffer(packet,50);

    > 이런식으로 써버에서는 데이타를 받습니다..

    >

    > 그런데.. 이런식으로 하니까.. 프로그램이 엄청나게 복잡해 지네요.

    > 지금은 단순히.. 간단한 테스트 패킷이지만.. 제가 생각하는 프로그램은 다양한 종류의 패킷을 보내야 하는데.. 써버가 받을때 어떤게 뭔줄 모르기 때문에 이렇게 밖에 할수 없었습니다..

    > 좀더 자세히 이야기 하면.. 써버에서.. 패킷의 종류를 구별하는 방법을 모르기 때문 입니다...고민을 하다 가 결국 writestream 과 readstream 을 사용하는게 제가 생각하는것과 가장 합당하다고 추리를 하게 됬습니다.. 이런 제 생각이 맞는지 모르겠네요..

    >

    > 그럼 수고 하세요^^