VC中使用Socket網路檔案傳輸結構

2021-04-23 03:02:46 字數 2153 閱讀 7023

1.socket_stream_file_info格式:

typedef struct _socket_stream_file_info socket_stream_file_info, * psocket_stream_file_info;

2.檔案傳送:

cfile myfile;

if(!myfile.open(fileneme, cfile::moderead | cfile::typebinary))

csocket socksrvr;

socksrvr.create(800);

socksrvr.listen();

csocket sockrecv;

socksrvr.accept(sockrecv);

socket_stream_file_info streamfileinfo;

win32_find_data findfiledata;

findclose(findfirstfile(filename,findfiledata));

memset(&streamfileinfo,0,sizeof(socket_stream_file_info));

strcpy(streamfileinfo.szfiletitle,myfile.getfiletitle());

streamfileinfo.dwfileattributes = findfiledata.dwfileattributes;

streamfileinfo.ftcreationtime = findfiledata.ftcreationtime;

streamfileinfo.ftlastaccesstime = findfiledata.ftlastaccesstime;

streamfileinfo.ftlastwritetime = findfiledata.ftlastwritetime;

streamfileinfo.nfilesizehigh = findfiledata.nfilesizehigh;

streamfileinfo.nfilesizelow = findfiledata.nfilesizelow;

sockrecv.send(&streamfileinfo,sizeof(socket_stream_file_info));

uint dwread=0;

while(dwread)

myfile.close();

sockrecv.close();

afxmessagebox("傳送完畢!");

3. 接受檔案

csocket sockclient;

sockclient.create();

if(!sockclient.connect((lpctstr)szip, 800))

socket_stream_file_info streamfileinfo;

sockclient.receive(&streamfileinfo,sizeof(socket_stream_file_info));

cfile destfile(streamfileinfo.szfiletitle, cfile::modecreate | cfile::modewrite | cfile::typebinary);

uint dwread = 0;

while(dwread)

setfiletime((handle)destfile.m_hfile,&streamfileinfo.ftcreationtime,

&streamfileinfo.ftlastaccesstime,&streamfileinfo.ftlastwritetime);

destfile.close();

setfileattributes(streamfileinfo.szfiletitle,streamfileinfo.dwfileattributes);

sockclient.close();

afxmessagebox("接收完畢!");

//注:

memset()

原型:extern void *memset(void *buffer, int c, int count);

用法:#include

功能:把buffer所指記憶體區域的前count個位元組設定成字元c。

說明:返回指向buffer的指標。

VC中使用Socket網路檔案傳輸結構

1.socket stream file info格式 typedef struct socket stream file info socket stream file info,psocket stream file info 2.檔案傳送 cfile myfile if myfile.open...

VC中使用CFileDialog進行檔案操作

一般來講你不需要派生新的類,因為基類已經提供了常用的功能,而且在建立並等待對話方塊結束後你可以通過成員函式得到使用者在對話方塊中的選擇。cfiledialog檔案選擇對話方塊的使用 首先構造乙個物件並提供相應的引數,建構函式原型如下 cfiledialog cfiledialog bool bope...

VC中使用CFileDialog進行檔案操作

一般來講你不需要派生新的類,因為基類已經提供了常用的功能。而且在建立並等待對話方塊結束後你可以通過成員函式得到使用者在對話方塊中的選擇。cfiledialog檔案選擇對話方塊的使用 首先構造乙個物件並提供相應的引數,建構函式原型如下 cfiledialog cfiledialog bool bope...