|
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처리가 가능하리라 생각됩니다.
: :
|