|
다음 코드로 테스트해봤는데 잘 되더군요.
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처리가 가능하리라 생각됩니다.
:
|