999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC++的大文件傳輸軟件設計

2013-12-31 00:00:00楊柳
無線互聯科技 2013年10期

摘 要:本文介紹了一種基于VC++的利用Socket進行TCP/IP連接,實現大文件傳輸的方法。本軟件采用多線程思想設計可以使程序開銷較小,運行更加流暢。

關鍵詞:Socket;TCP/IP;多線程;大文件

1 引言

文件傳輸軟件是一種很常見的軟件,但是很多傳輸軟件對要傳送的文件的大小有要求,一般最大是4G,當傳輸的文件大于4G時就無法傳輸。本文設計的傳輸軟件幾乎可以不受文件大小的約束。而且系統開銷小,操作簡單。

2 軟件設計

2.1 套接字(Socket)

套接字是通信的基石,是支持TCP/IP協議的網絡通信單元。可以將套接字看作不同主機間的進程雙向通信的終點,它構成了在單個主機內及整個網絡間的編程界面。套接字有兩種不同的類型:流套接字和數據套接字。流套接字提供雙向的、有序的、無重復并且無記錄的數據流服務,它適用于處理大量數據。數據套接字支持雙向的數據流,但并不保證數據傳輸的可靠性、有序性和無重復性。因此,根據本文的設計的需要選擇流套接字。

2.2 客戶機/服務器模型

本軟件采用的是服務器客戶機的模式。一個服務程序通常在一個眾所周知的地址監聽客戶對服務的請求,也就是說,服務進程一直處于休眠狀態,知道一個客戶對這個服務的地址提出了連接請求。在這個時刻,服務程序被“驚醒”并且為客戶提供服務——對客戶的請求做出反應。這一請求/響應的過程可以簡單地用圖1表示。

3 軟件的編程實現

該軟件是在VC++6.0上編程實現的,下面介紹該軟件的幾個關鍵部分。

3.1 大文件傳輸的處理

一般傳輸軟件設計的數據類型都是32位的,所以傳輸文件最大只能是4G。本文將文件大小的數據類型定義為64位,那么傳輸文件可以到234G,幾乎為無窮大。軟件的部分代碼如下:

unsigned __int64 m_FileLength=0;

m_FileLength=m_FileLength+StreamFileInfo.nFileSizeHigh;

m_FileLength=m_FileLength<<32;

m_FileLength=m_FileLength+StreamFileInfo.nFileSizeLow;

其中m_FileLength為無符號的64為類型,存儲文件的長度。StreamFileIfo為文件信息結構體類型,其中將文件的大小信息分割成長度為32位的兩部分,分別存在StreamFileInfo.nFileSizeHigh和StreamFileInfo.nFileSizeLow里面。

3.2 多線程實現

該軟件采用兩個線程,一個是接收線程UINT ReceiveDataThread(LPVOID lpParam);另一個是發送線程UINT SendDataThread(LPVOID pParam);當服務器端點擊發送按鈕后啟動發送線程,啟動發送線程的函數為:AfxBeginThread((AFX_THREADPROC)SendDataThread,this,THREAD_PRIORITY_NORMAL);

當客戶端點擊接收按鈕后啟動接收線程,啟動接收線程的函數為:AfxBeginThread(ReceiveDataThread,this,THREAD_PRIORITY_NORMAL);

服務器與客戶機的通信流程見圖2。

3.3 磁盤剩余空間判斷

當客戶端接收文件的時候首先判斷磁盤的剩余空間是否可以滿足文件大小的要求,然后再進行傳輸。獲取磁盤信息的函數為:GetDiskFreeSpaceEx(str.Left(3),lpuse,lptotal,lpfree);

其中,str.Left(3)為磁盤的盤符,lpuse為已用空間大小,lptotal為總的空間大小,lpfree為剩余空間大小。最后將lpfree與m_FileLength作比較判斷磁盤空間是否滿足文件存儲的要求。

4 總結

本文通過在VC++6.0上編程實現了可以在整個網絡傳輸的功能,傳輸文件的大小幾乎沒有限制,服務器可以隨時暫停和終止文件的傳輸,客戶端在接收文件的時候可以事先判斷磁盤的容量,當磁盤空間不足的時候會出現提示信息。下圖為實際生成的軟件界面。

[參考文獻]

[1]莫海光.用VC++實現的文件傳輸工具[J].計算機信息技術,2007年第15期.

[2]陳堅,陳偉,等.Visual C++網絡高級編程[M].人民郵電出版社,2001年.

主站蜘蛛池模板: a毛片免费观看| 国产高清免费午夜在线视频| 国产内射一区亚洲| 成人一级黄色毛片| 91精品国产91久无码网站| 国产视频入口| 亚洲人成影视在线观看| 亚洲黄色成人| 在线不卡免费视频| 97se亚洲综合在线韩国专区福利| 亚洲另类国产欧美一区二区| 久综合日韩| 青草精品视频| 波多野吉衣一区二区三区av| 国产一级妓女av网站| 在线观看国产网址你懂的| 色综合成人| 国产精品成人AⅤ在线一二三四| 亚洲成A人V欧美综合天堂| 欧美午夜在线播放| 中文字幕欧美日韩| 免费无遮挡AV| 中文字幕在线不卡视频| 精品国产自| 亚洲国产在一区二区三区| 日韩激情成人| m男亚洲一区中文字幕| 久青草国产高清在线视频| 成人福利免费在线观看| 成人第一页| 54pao国产成人免费视频| 青青国产视频| 波多野结衣无码视频在线观看| 又大又硬又爽免费视频| 四虎影院国产| 欧美翘臀一区二区三区| 国产精品成人免费视频99| 91视频99| 亚洲欧美日韩中文字幕在线| 九九九精品成人免费视频7| 国产在线八区| 欧美国产在线看| 午夜欧美在线| 国产精选小视频在线观看| 国产精品55夜色66夜色| 无码电影在线观看| 五月天福利视频| 中文字幕在线欧美| 五月激情婷婷综合| 欧美69视频在线| 国国产a国产片免费麻豆| 亚洲愉拍一区二区精品| 欧美在线黄| 日本不卡在线播放| 国产又爽又黄无遮挡免费观看| 精品视频免费在线| 日韩欧美视频第一区在线观看| 亚洲首页在线观看| av大片在线无码免费| 色一情一乱一伦一区二区三区小说| 性视频一区| 欧美在线一级片| 久久久国产精品免费视频| 日韩经典精品无码一区二区| 精品三级在线| 四虎永久在线精品国产免费| 亚洲综合18p| 国产精品乱偷免费视频| 日韩欧美国产区| 亚洲AV人人澡人人双人| 国产超薄肉色丝袜网站| 欧美日韩一区二区在线播放| 日本AⅤ精品一区二区三区日| 国产九九精品视频| 在线观看免费AV网| 亚洲日本韩在线观看| 国产精品极品美女自在线| 国产精品永久不卡免费视频| 欧美亚洲综合免费精品高清在线观看| 免费a级毛片视频| 夜夜操天天摸| 免费中文字幕一级毛片|