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

VB中基于TCP/IP協議的點對點文件傳輸

2012-10-13 05:02:52高永強李翠蓮
長治學院學報 2012年5期

高永強,李翠蓮

(1.呂梁學院 計算機系,山西 呂梁 033000;2.離石師范 計算機系;山西 呂梁 033000)

當今軟件技術主要是網絡編程,TCP/IP網絡通訊協議應用最為廣泛。文章通過討論采用Winsock控件對TCP/IP協議訪問網絡的捷徑,不需了解TCP/IP實現過程的細節和調用復雜的Winsock API,只需設置相應的屬性值和編寫相應事件代碼,就可以實現不同計算機系統之間的數據通信。

1 Winsock控件

Winsock是Windows下廣泛應用的、開放的、支持多種協議的網絡編程接口。通信的基礎是套接口(Socket),一個套接口是通訊的一端。在這一端上可以找到與其對應的一個名字。為了保證通訊的可靠性,在下面的程序中使用的是TCP/IP協議,并且在客戶端和服務端均采用預設端口1001(大家在實踐時可以自行更改)。

2 Winsock控件通信的工作原理

一個在建立點對點的應用時最常用的范例便是客戶機/服務器模型。在這種方案中,客戶應用程序向服務器程序請求服務。這種方式隱含了在建立客戶機/服務器間通訊時的非對稱性??蛻魴C/服務器模型工作時要求有一套為客戶機和服務器所共識的慣例來保證服務能夠被提供(或被接受)。這一套慣例包含了一套協議。它必須在通訊的兩頭都被實現。根據不同的實際情況,協議可能是對稱的或是非對稱的。在對稱的協議中,每一方都有可能扮演主從角色;在非對稱協議中,一方被不可改變地認為是主機,而另一方則是從機。一個服務程序通常在一個眾所周知的地址監聽對服務的請求,也就是說,服務進程一直處于休眠狀態,直到一個客戶對這個服務的地址提出了連接請求。在這個時刻,服務程序被“驚醒”并且為客戶提供服務-對客戶的請求作出適當的反應。這一請求/相應的過程可以簡單的用圖表示。雖然基于連接的服務是設計客戶機/服務器應用程序時的標準,但有些服務也是可以通過數據報套接口提供的,其大致流程如圖1所示。

圖1 Winsock工作原理

端口號范圍是0-65535,(其中0-1023被預先定義所占用(如http占用端口80),故端口號設置在1024-65535之間,防止端口沖突。

3 基本方法

建立服務器端和客戶端,服務器端設置與客戶端口相同的一個監聽端口,同時調用服務器端的Listen方法監聽客戶端的請求;當接收到客戶端的連接請求就調用事件ConnectionRequest的方法Accept與客戶端建立連接??蛻舳吮仨氈婪掌鞫说牡刂罚槐仨毰c服務器端有相同的端口(用于數據的輸入和輸出);調用方法Connect與服務器端連接??蛻舳撕头掌鞫诉B接后,服務器與客戶機端通過SendData方法和GetData方法自由地收發數據[1]。

4 案例實現

文章通過一個具體事例,來說明使用Winsock控件進行點對點的網絡通信。事例需要兩臺計算機,分別為服務器端和客戶端,實現將服務器端的某一文件發送到客戶端,從而服務器端和客戶端點對點的文件傳輸。

4.1 基本原理

文章實現點對點文件的傳輸中最基本的文件傳輸方式,只建立一個發送端和接收端。基本原理:發送端獲取要傳輸文件的基本信息(文件名及文件長度)發送接收端,并建立一個和文件一樣大小的數據緩沖區,并將文件內容讀入緩沖區,軟后將數據緩沖區中的數據發送給接收端。同時,接收端接收到文件基本信息后,也為其創一個文件和相同大小數據緩沖區,將發送的文件數據存儲到數據緩沖區中,然后,將數據緩沖區的數據寫入創建的文件中去。從而實現了不同計算機之間文件的傳輸。[3]

4.2 服務器端主程序代碼

“通用”中聲明如下:

4.3 客戶端主程序代碼

“通用”中聲明如下:

上例介紹了Winsock控件文件傳輸的過程。但是,要傳送的數據量較大時,不能將幾百MB甚至上GB的數據放到內存中區,應該將文件分割為一定的大小,分成若干個數據塊。所以,先設置數據塊的大?。ㄈ?28 K),根據文件長度計算出數據塊數。接著,依次讀取數據塊到數據緩沖區中,然后,將數據緩沖區中的數據發送接收端的計算機上。接收端也建立一個與發送端相同大小數據緩沖區,依次接收傳輸過來的數據塊,并將緩沖區的數據寫入到文件中,從而實現大文件的傳輸。

有時,當正傳輸的文件突然被中斷,為了節省時間可以采用“斷點續傳”?!皵帱c續傳”的方法采用設置一個臨時文件,記錄已經傳輸的文件信息,通過臨時文件信息推算出未傳輸的數據。所以每次文件傳輸前,查找文件是否有臨時文件,并將此文件信息傳輸給服務器端,服務器端據此接著傳輸剩余的數據,當文件全部傳輸完畢時,臨時文件被刪除,這樣就實現了“斷點續傳”。

文章依然通過上面的實例,介紹如何在VB中使用Winsock控件實現文件的分塊傳輸和斷點續傳。

4.4 服務器端主程序如下

“通用”中聲明如下:

4.5 客戶端主程序如下

“數據到達”事件的代碼:

5 結語

文章介紹在VB中使用Winsock控件實現點對點文件傳輸的網絡傳輸。此外,本文還介紹了實際工作中“斷點續傳”編程方法,以滿足實際工作需要,其設計的思想也具有普遍的通用性[2]。

[1]微軟中國有限公司譯.Microsoft C orporation.中文Visual Basic 6.0程序員指南[M].北京:科學出版社,1998.

[2]黃淼云.VB 6.0辦公自動化編程[M].北京:國防工業出版社,2000.

[3]何克石.基于 Winsock 的點對點網絡通信[J].交通與計算機,2000,(5):22-23.

主站蜘蛛池模板: 国产第八页| av在线手机播放| 片在线无码观看| 亚洲黄色成人| 国产熟睡乱子伦视频网站| 国产高清在线丝袜精品一区| 国产精品亚洲αv天堂无码| 免费国产高清精品一区在线| 亚洲一区二区三区国产精品 | 在线播放真实国产乱子伦| 伊人久久青草青青综合| 熟女视频91| 国产精品污视频| 国产激爽大片在线播放| 亚洲成人黄色在线观看| 波多野结衣无码中文字幕在线观看一区二区 | 亚洲精品第一页不卡| 久草中文网| 高清无码不卡视频| 色135综合网| 国产成人喷潮在线观看| 无码又爽又刺激的高潮视频| 日本不卡免费高清视频| 香蕉伊思人视频| 亚洲91在线精品| 亚洲国产亚综合在线区| 狠狠v日韩v欧美v| av一区二区人妻无码| 亚洲成在人线av品善网好看| 久久国产精品影院| 久久免费视频6| 国产青榴视频在线观看网站| 一级毛片免费高清视频| 99资源在线| 波多野结衣一区二区三区AV| 欧美激情视频在线观看一区| 婷婷伊人久久| a天堂视频| 亚洲成aⅴ人在线观看| 性做久久久久久久免费看| 国产伦片中文免费观看| 亚洲男人的天堂久久香蕉| 亚洲V日韩V无码一区二区| 亚洲天堂免费在线视频| 国产va在线观看| 婷婷六月激情综合一区| 亚洲天堂高清| 欧美午夜理伦三级在线观看| 国产极品美女在线播放| 久久黄色一级片| 欧美黄网站免费观看| 一级毛片免费的| 综合五月天网| 欧美伦理一区| 天天色天天操综合网| 老司机久久99久久精品播放| 亚洲天堂视频在线观看免费| 在线观看亚洲精品福利片| 二级特黄绝大片免费视频大片| 99久久精品视香蕉蕉| 欧美激情二区三区| 久久频这里精品99香蕉久网址| 韩日无码在线不卡| 亚洲va在线观看| 亚洲水蜜桃久久综合网站| 亚洲国产系列| 亚洲无码视频一区二区三区| 视频国产精品丝袜第一页| 亚洲成年人片| 欧美激情视频二区| 精品亚洲麻豆1区2区3区| 欧美中文字幕在线播放| 77777亚洲午夜久久多人| 午夜激情福利视频| 国产成人综合日韩精品无码首页 | 国产精品成人观看视频国产 | 黑人巨大精品欧美一区二区区| 亚洲国内精品自在自线官| igao国产精品| 九九热精品在线视频| 久久人妻xunleige无码| 91啪在线|