在C++Builder中編寫發(fā)送圖象文件程序(四)
2019-09-10 09:07:06
供稿:網(wǎng)友
void __fastcall TForm1::NMStrm1HostResolved(TComponent *Sender)
{
StatusBar1-$#@62;SimpleText = "Host Resolved";
}
//---------------------------------------------------------------------------
//當(dāng)文件發(fā)送到對方時(shí)產(chǎn)生此事件
void __fastcall TForm1::NMStrm1MessageSent(TObject *Sender)
{
ShowMessage("有文件發(fā)送到對方");
}
//---------------------------------------------------------------------------
//數(shù)據(jù)發(fā)送到對方時(shí)產(chǎn)生此事件
void __fastcall TForm1::NMStrm1PacketSent(TObject *Sender)
{
StatusBar1-$#@62;SimpleText = IntToStr(NMStrm1-$#@62;BytesRecvd)+" bytes of "
+NMStrm1-$#@62;BytesTotal+" sent";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrm1Status(TComponent *Sender,AnsiString Status)
{
if (StatusBar1 != 0)
StatusBar1-$#@62;SimpleText = Status;
}
//---------------------------------------------------------------------------
//沒有主機(jī)名時(shí)產(chǎn)生此事件
void __fastcall TForm1::NMStrm1InvalidHost(bool &Handled)
{
AnsiString NewHost;
if (InputQuery("沒有主機(jī)", "請輸入要發(fā)送的主機(jī)名:", NewHost))
{
NMStrm1-$#@62;Host = NewHost;
Edit1-$#@62;Text=NewHost;
}
}
//---------------------------------------------------------------------------
//表示客戶機(jī)已連接到服務(wù)器了
void __fastcall TForm1::NMStrmServ1ClientContact(TObject *Sender)
{
StatusBar1-$#@62;SimpleText = "Client Contacted";
}
//---------------------------------------------------------------------------
//接收客戶端發(fā)送來的文件
void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
if (FileExists("./tmp.bmp"))
DeleteFile("./tmp.bmp");
TFileStream *MyFStream;
MyFStream = new TFileStream("./tmp.bmp", fmCreate);
try
{
MyFStream-$#@62;CopyFrom(strm, strm-$#@62;Size);
}
catch(...)
{
}
MyFStream-$#@62;Free();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrmServ1Status(TComponent *Sender,
AnsiString Status)
{
if (StatusBar1 != 0)
StatusBar1-$#@62;SimpleText = Status;
}
//---------------------------------------------------------------------------
編好代碼以后,編譯源程序,在兩臺計(jì)算機(jī)上運(yùn)行它就行了,每一方都可以做服務(wù)器或工作站,只要對方運(yùn)行了該程序,都可以向其發(fā)送圖象文件,也可以在單機(jī)上操作,快來試試吧!