VC檔案傳輸

2021-05-05 13:50:40 字數 2040 閱讀 9330

vc 檔案傳輸的實現

2008-07-20 20:33

要實現檔案傳輸最簡單的辦法是寫兩個執行緒,乙個伺服器段的傳送處理執行緒,乙個客戶端的接收處理執行緒。

執行緒處理函式需要宣告為類的靜態成員,由於不可訪問類內部的資料成員,所以引數傳遞裡面最好有個類的指標

伺服器段的傳送處理執行緒:

cfiletransferdlg* pdlg = (cfiletransferdlg*)lpparam;

cfiledialog filedlg(true);

filedlg.m_ofn.lpstrtitle = "

開啟檔案對話方塊";

filedlg.m_ofn.lpstrfilter = "

所有檔案(*.*) /0 *.*/0";

if(idok == filedlg.domodal())

csocket socksrvr;

socksrvr.create(800);

//埠號

socksrvr.listen();

//開始監聽

csocket sockrecv;

socksrvr.accept(sockrecv);

char strsend[19];

strcpy(strsend, "now begin transfer"); //

此處用send向所有網路資源傳送資料,如果用sendto則需要指定ip

sockrecv.send(&strsend,sizeof(strsend));

//傳送連線請求

//strext

存放檔案字尾名

char* strext = new

char[5];

strcpy(strext, filedlg.getfileext());

int length = strlen(strext); //

先傳送資料的長度,再傳送資料本身

sockrecv.send(&length, 4);

sockrecv.send(strext, length);

uint dwread = 1;

while(dwread)

fileopen.close();

sockrecv.close();

afxmessagebox("

傳送完成!"); }

return 1;

客戶端接收檔案執行緒處理函式:

//引數lpparam存放視窗指標

cfiletransferdlg* pdlg = (cfiletransferdlg*)lpparam;

dword dwip; //

獲取ip空間的ip位址

((cipaddressctrl*)pdlg->getdlgitem(idc_ipaddress1))->getaddress(dwip); //

將dword ip轉換為cstring

unsigned

char* pip;

pip = (unsigned

char*)&dwip;

cstring strip;

strip.format("%u.%u.%u.%u",*(pip+3), *(pip+2), *(pip+1), *pip);

csocket sockclient;

sockclient.create(); //

連線 while(!sockclient.connect(strip, 800))

sleep(50);

char strrecv[19]; //

判斷接收到的資料是否為傳輸檔案請求

while(strcmp(strrecv, "now begin transfer"))

cfiledialog filedlg(false);

if(idok == filedlg.domodal())

destfile.close();

sockclient.close();

afxmessagebox("

接收完畢!"); }

return 1;

VC中檔案傳輸

思路 服務端1.首先檔案已二進位制開啟 2.把檔案的屬性傳送給客戶端 3.以位元組的形式讀取檔案中的資料,並迴圈傳送給客戶端直到傳送完畢。客戶端1.收取伺服器端傳送而來的檔案資訊,並建立相應檔案 2.把伺服器傳送而來的資料資訊按位元組形式寫入 該檔案中 3.設定檔案的一些屬性。相應 資料結構 typ...

VC 網路程式設計 檔案傳輸

在socket程式設計中,以前學習的時候都是簡單的字元傳輸,而在實際的應用中,經常需要傳輸檔案,其實網路上的檔案傳輸都是先把資料轉化為位元組流,當然,最底層的是01二進位制資料的傳輸,但是這部在我們討論範圍之內,其實現在還只是研究小檔案怎麼傳輸,當檔案很大時,需要用到斷點續傳。好了,要傳輸檔案,首先...

VC 網路程式設計 檔案傳輸

在socket程式設計中,以前學習的時候都是簡單的字元傳輸,而在實際的應用中,經常需要傳輸檔案,其實網路上的檔案傳輸都是先把資料轉化為位元組流,當然,最底層的是01二進位制資料的傳輸,但是這部在我們討論範圍之內,其實現在還只是研究小檔案怎麼傳輸,當檔案很大時,需要用到斷點續傳。好了,要傳輸檔案,首先...