|
TFileStream이나 TMemoryStream이나
TStream을 상속한 것이어서 둘 다 똑같습니다.
두 가지 모두 똑같이 사용하면 됩니다.
이기주 님이 쓰신 글 :
: TFileStream이 아니고 TMemoryStream이라면,
:
: 어떻게 되는건지요..
:
: 전송하기 위해서는 다른무엇인가가 필요한가요?
:
:
:
: Julien 님이 쓰신 글 :
: : 다음 코드로 테스트해봤는데 잘 되더군요.
: :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : ClientSocket1->Active = true;
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
: : TCustomWinSocket *Socket)
: : {
: : Socket->SendText( "Welcome" );
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
: : TCustomWinSocket *Socket)
: : {
: : String str = Socket->ReceiveText();
: : if( str == "Welcome" )
: : {
: : TFileStream *stream = new TFileStream("d:/test.txt", fmOpenRead);
: : Socket->SendStream(stream);
: : }
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
: : TCustomWinSocket *Socket)
: : {
: : char *buf;
: : int len = Socket->ReceiveLength();
: : buf = new char(len);
: : Socket->ReceiveBuf( buf, len );
: : Memo1->Lines->Add( buf );
: : }
: : //---------------------------------------------------------------------------
: :
: :
: : : TServerSocket과 TClientSocket을 각각 두고
: : :
: : : TClientSocket에서
: : : ClientSocket1->Socket->SendStream(MyStream);
: : : 을 수행해도
: : :
: : : TServerSocket에서는 Read에 대한 이벤트가 발생하지 않습니다.
: : : OnClientRead이벤트로 처리해 봤습니다.
: : :
: : : SendBuf나 SendText등은 이벤트 발생 합니다.
: : :
: : : OnClientRead이벤트처리가 되어야 ReceiveBuf처리가 가능하리라 생각됩니다.
: : :
|