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年.

主站蜘蛛池模板: 91日本在线观看亚洲精品| 日韩精品资源| 成人在线天堂| 一本色道久久88| 最新国产精品第1页| 波多野结衣一区二区三区88| 国产毛片久久国产| 国产特级毛片aaaaaaa高清| 久久久精品久久久久三级| 国产无码精品在线播放| 免费视频在线2021入口| AV色爱天堂网| 国产幂在线无码精品| 亚洲日韩久久综合中文字幕| 91小视频在线观看免费版高清| 亚洲欧美日本国产综合在线| 免费国产好深啊好涨好硬视频| 国产精品无码久久久久久| 日本成人在线不卡视频| 九色综合视频网| 精品剧情v国产在线观看| 国产成人91精品免费网址在线| 亚洲AV无码不卡无码| 亚洲男人的天堂在线观看| 日韩中文字幕亚洲无线码| 亚洲午夜国产精品无卡| 在线视频亚洲色图| 天天综合网在线| 中文字幕有乳无码| 国产成人你懂的在线观看| 亚洲男人天堂久久| 2048国产精品原创综合在线| 亚洲欧美精品日韩欧美| 国产手机在线小视频免费观看| 黄色网页在线观看| 91精品国产丝袜| 国产精品一线天| 97国内精品久久久久不卡| 国产精品入口麻豆| 久久人人97超碰人人澡爱香蕉| 日本人妻一区二区三区不卡影院 | 久久国产拍爱| 亚洲国产黄色| 国产第八页| 久久黄色一级视频| 永久免费无码日韩视频| 婷婷激情亚洲| 国产一二视频| av一区二区三区高清久久| 成人国产三级在线播放| 国产一级小视频| 亚洲国产清纯| 国产呦精品一区二区三区网站| 久操线在视频在线观看| 亚洲精品自拍区在线观看| 日韩国产高清无码| 国产亚洲精品自在线| 亚洲最大福利视频网| 2020国产精品视频| 青青久在线视频免费观看| 在线免费a视频| 国产激情在线视频| 亚洲v日韩v欧美在线观看| 中国黄色一级视频| 亚洲精品国产首次亮相| 成色7777精品在线| 欧美国产日本高清不卡| 直接黄91麻豆网站| 丁香六月综合网| 亚洲午夜福利在线| 91欧美在线| 国产导航在线| 四虎在线高清无码| 日韩欧美国产成人| 在线观看91香蕉国产免费| 97国产精品视频人人做人人爱| 国产簧片免费在线播放| 中文字幕第4页| 欧美亚洲国产一区| 欧美a在线看| 91成人免费观看在线观看| 五月天福利视频|