求一個C++網路編程--客戶端與服務器原始碼,要求傳遞txt,jpg等格式的檔案。
uj5u.com熱心網友回復:
在Borland C++ Builder中,使用NMStrmServ和NMStrm組件可以很輕易地在兩臺電腦之間傳遞檔案。當然,你也可以使用基于FTPJ協議的檔案傳輸組件NMFTP,但使用NMStrmServ和NMStrm組件更加方便、快捷。首先,運行Borland C++ Builder,在表單Form1中加入一個NMStrmServ組件和一個保存對話框組件SaveDialog。
然后在NMStrmServ1的OnMSG事件中加入:
//保存檔案對話框
if(SaveDialog1->Execute())
{
//假如目標檔案存在則洗掉
if (FileExists(SaveDialog1->FileName))
DeleteFile(SaveDialog1->FileName);
TFileStream *MyFStream;
//建立檔案
MyFStream = new TFileStream(SaveDialog1->FileName, fmCreate);
try
{
MyFStream->CopyFrom(strm, strm->Size);
ShowMessage("接收成功!檔案另存為"+SaveDialog1->FileName);
}
catch(...)
{
ShowMessage("接收失敗!");
}
//釋放
MyFStream->Free();
}
這樣,一個接收檔案的程式請做好了,緊接著我們做檔案發送的程式:
再次運行Borland C++ Builder,在新工程的表單上加入一個NMStrm組件、一個OpenDialog組件、一個按鈕Button組件、一個Label組件和一個Edit組件。把Button1的Caption屬性改為“發送檔案”,把Label1的Caption屬性改為“接收主機:”,把Edit1的Text屬性改為“127.0.0.1”。
然后雙擊Button1,在它的OnClick事件中加入代碼:
//打開檔案對話框
if (OpenDialog1->Execute())
{
TFileStream *MyFStream;
MyFStream = new TFileStream(OpenDialog1->FileName, fmOpenRead);
try
{
//主機名
NMStrm1->Host = Edit1->Text;
NMStrm1->FromName = "NetMasters";
//發送
NMStrm1->PostIt(MyFStream);
ShowMessage("檔案"+OpenDialog1->FileName+"發送成功!");
}
catch(...)
{
ShowMessage("檔案"+OpenDialog1->FileName+"發送失敗!");
}
MyFStream->Free();
}
代碼輸入完畢,分別編譯運行這兩個程式。編譯完成后,你就可以點擊發送程式的“發送檔案”按鈕打開一個檔案來傳送到遠程的主機了。本例中默認的接收主機ip地址是127.0.0.1,即本地計算機,你也可以在局域網中的其它計算機上運行接收程式,再在發送程式的主機名里填入該計算機的名字或IP地址,然后打開檔案發送。發送成功后,接收程式收到檔案并詢問保存檔案,選擇要保存的路徑及檔案名即可保存接收到的檔案。
uj5u.com熱心網友回復:
C++Builder2010沒有NMStrmServ和NMStrm組件 請問哪里能下
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113038.html
標籤:網絡及通訊開發
上一篇:求職貼
下一篇:c++ 如何釋放堆中的空間
