网路应用程式实习.ppt

上传人:小飞机 文档编号:5301895 上传时间:2023-06-23 格式:PPT 页数:38 大小:1.13MB
返回 下载 相关 举报
网路应用程式实习.ppt_第1页
第1页 / 共38页
网路应用程式实习.ppt_第2页
第2页 / 共38页
网路应用程式实习.ppt_第3页
第3页 / 共38页
网路应用程式实习.ppt_第4页
第4页 / 共38页
网路应用程式实习.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《网路应用程式实习.ppt》由会员分享,可在线阅读,更多相关《网路应用程式实习.ppt(38页珍藏版)》请在三一办公上搜索。

1、網路應用程式實習(1)、(2),實習規範,目的規格關聯背景需求設備需求,目的,瞭解網路驅動程式的原理與程式架構,及如何在Linux Target端架設ghttp server並作相關的運用。,技術背景-設備需求,技術背景需求具 C 語言程式設計基礎設備需求H/W requitrementPC Host,COM port,網路 Hub Creator XCsale-PXA270 Development KitS/W requitrements:Linux for Creator XScale-PXA270 user guide。Create-XScale-PXA270 Users Guide。通

2、訊軟體:例如Windows的超級終端機。,實習系統概論,簡介系統架構電路架構程式流程,簡介,在理論部分將針對下列幾點加以說明:網路介面驅動程式TCP/IP通訊協HTTP超文件傳輸協定(HyperText Transport Protocol)CGI程式設計在實作部分將包含下列幾點:編譯和安裝ghttp server。利用Windows Host的browser連結上ghttp server。利用gpttp完成影音檔案的傳輸和播放。利用gpttp完成遠端控制Linux Target端LED的明亮。,系統架構,電路架構,程式流程,WebLed程式Windows Host、Linux Target、

3、CGI程式架構圖,程式流程(cont.),WebLed程式CGI程式的訊息傳遞,實驗原理,網路介面驅動程式 TCP/IP通訊協定HTTP超文件傳輸協定CGI程式設計,網路介面驅動程式,網路介面驅動程式簡介不同於字元式裝置和區塊式裝置,網路裝置並不依附在檔案系統中,而是在核心層就直接處理封包的傳遞與接收,因此也不為行程所開啟的檔案所限制。網路介面和應用程式之間的資料傳遞不是透過和檔案相關的標準系統呼叫,而是像 socket()、bind()、listen()、accept()和connect()這類的系統呼叫,所以在Unix系統裡“任何東西都是檔案”的觀念,在網路裝置並不適用。網路驅動程式必須非

4、同步(asynchronously)地接收外界的封包 網路驅動程式會要求將進來的封包推向核心,網路介面驅動程式(cont.),網路驅動程式架構圖,網路介面驅動程式(cont.),註冊網路裝置 struct*net_devicealloc_netdev()/alloc_etherdev()ether_setup()register_netdev(),網路介面驅動程式(cont.),網路介面的初始化 snull_init()struct net_device卸載網路模組 unregister_netdev(),網路介面驅動程式(cont.),開啟與關閉 在介面傳輸封包之前,必須先以ifconfig

5、開啟介面,並賦予IP位址ifconfig設定IP位址給介面時:ioctl(SIOCSIFADDR)設定軟體位址給介面ioctl(SIOCSIFILAGS)要求驅動程式開啟、關閉介面 觸動open及stopopen()設法取得必要的系統資源(佔領IRQ,IObase,buffer)要求介面硬體起動讀出MAC,複製到 dev dev_addr(也可作在init或probe時)將dev dev_addr設定至介面MAC暫存器中stop()停止介面硬體歸還系統資源,網路介面驅動程式(cont.),封包的傳送與接收,網路介面驅動程式(cont.),封包傳送,網路介面驅動程式(cont.),封包接收,網路

6、介面驅動程式(cont.),中斷處置Interrupt happen whenA new packet has arrivedTransmission of an outgoing packet is completedSomething happened:PCI bus error,cable length change,time outInterrupt status register(ISR)Packet reception:Pass to the kernelPacket transmission is completed:Reset the transmit buffer of th

7、e interfaceStatistics,TCP/IP通訊協定,TCP/IP通訊協定簡介TCP/IP是 Transmission Control Protocol(TCP)和 Internet Protocol(IP)的簡稱,為網路上的一種通訊協定。TCP/IP 是一個開放的標準,任何人均可自由的下載和 TCP/IP 相關的技術標準和文件。有了這些規則,即使是不同的電腦設備與作業環境,都可以透過這些通訊協定來互通訊息。同時也是因為這些規則,Internet 才可能有這麼多應用(WWW、E-Mail、FTP、Telnet 等)。,TCP/IP通訊協定(cont.),TCP/IP 的階層架構,T

8、CP/IP通訊協定(cont.),什麼是 IP 位址?每一台連上 Internet 的電腦都有一個獨一無二的位址,以方便彼此區分與辨識,這樣資料才不會送錯,這個位址就是 IP 位址(IP Address)。目前 IP 位址的長度為 32 位元,通常以四組數字來表達(xxx.xxx.xxx.xxx),每組數字就是 8 位元長度。,TCP/IP通訊協定(cont.),認識網域名稱 例如:,HTTP超文件傳輸協定,HTTP超文件傳輸協定簡介超文件傳輸協定(HyperText Transport Protocol)與其他Web上所使用的主要標準規範的關係,HTTP是用來規範資料的傳輸的、HTML及VR

9、ML是用來規範在用戶端展示文件的、而CGI則是規範伺服器端與應用程式的介面的。,HTTP超文件傳輸協定(cont.),HTTP規範沿革 目前最成熟的HTTP規格是HTTP/1.1(RFC2068)January 1997,是在演變成網際網路正式標準過程中的一份草案,這是由IETF(Internet Engineering Task Force)下所屬HTTP Working Group(HTTP-WG)所編訂。所有的標準草案可分為Internet Drafts及Request for Comments(RFC)。前者為工作文件,有效期六個月,可隨時更改或取消;後者為IETF所屬IAB的永久性文

10、件,有些會發展成為標準,稱為網際網路標準(Internet Standard),故HTTP/1.1正在成為網際網路標準的過程中。HTTP規格可在取得,此外,由 可察看其他相關規格與消息。,HTTP超文件傳輸協定(cont.),HTTP功能及用途 它是一種應用階層(Application-level)的通訊協定,特性是輕便、快速,特別適合如Web這種分散式、合作式的超媒體資訊系統。HTTP規範用戶(client)與伺服器(server)之間的通訊,用戶是一個程式,它按照HTTP的規範建立一個通達伺服器(另一個程式)的連結(connection)以送出其要求(request);所謂要求就是對在某一

11、伺服器上的資源(resource)請其做某種動作,ghttpd ghttpdGaztek HTTP Daemon是UNIX系统下的web伺服器程式,它是免费下载的軟體並公開原始程式碼。ghttpd支持CGI是一款容易配置的HTTP 服務器。,CGI程式設計,CGI程式設計簡介CGI 是 Common Gateway Interface 的簡稱,一般中譯為:共通閘道介面。Common 是指共通的、不限於一種作法的意思,在這裡指的是語言的獨立性,換言之,可以用任何一種程式語言來實作。常見的語言有 Perl、Python、C、C+、VB。Gateway 是說伺服器的應用能力是經由擴充得到的,它將查詢

12、等要求交由外部程式處理,處理完了之後,再將結果傳回。Interface 是指一種介面的意思,符合此一介面標準,便可以輕鬆地製作外部程式,而無需去擔心或處理低階的問題。CGI 程式是 WEB 伺服器應用能力的擴充(Extension),而 CGI 則是此一擴充能力的介面,熟悉瞭解此一介面的原理及運作方式,我們便可以為 WEB 伺服器建立即時互動的能力,以滿足客戶端的要求。,CGI程式設計(cont.),CGI 架構圖,CGI程式設計(cont.),撰寫 CGI 程式需要那些工具 UltraEditorvi(Unix 系統中的編輯器)CGI 程式設計如何入門 一點程式語言的基礎,不需要太高深,但至

13、少基本的觀念要了解。了解 CGI 程式的基本觀念和原理,最好找一本 CGI 的入門書籍來看看。觀摩別人的程式,由模仿開始。並動手實作 CGI 小程式。培養 CGI 偵錯的能力和經驗。多和別人討論並交換心得經驗。自定一個中型程式為目標,轉變模仿的作法,加入自己的創意和想法,開始建立自己的風格。不斷地看書、吸收新知,尋求突破和進階。,CGI程式設計(cont.),第一支 CGI 程式#!/usr/bin/perl#(第一列用來指出 perl 的路徑)#(第二列開始,若有出現#,則表示該列為註解,#perl 將不會執行它)print Content-type:text/htmlnn;#這是 MIME

14、 表頭,用來告訴瀏覽器要送出的資料型態是什麼?#一定要寫出這一行,否則會出現 Error 500 錯誤#注意:每列命令用;做為結束!#接下來印出欲顯示的網頁內容print CGI 哈囉!;print;print Hello,world!;print;,CGI程式設計(cont.),執行方法將 CGI 程式用 FTP 軟體送上網頁 cgi-bin 目錄中附屬檔名通常為.cgi 或.pl注意一定要用 ASCII 模式上傳,否則會出現 Error 500 錯誤將 CGI 程式屬性改為 755在您的瀏覽上位址列處鍵入:http:/主機位址/cgi-bin/hello.cgi,CGI程式設計(cont.

15、),CGI如何取得傳遞資料 GET此法會將資料以鍵和值(Key-Value)成對的方式,附加在 URL 之中,若有兩項以上的資料,則各對鍵值之間用&隔開。http:/主機位址/cgi-bin/test.cgi?name=John&age=18 POST POST 利用 HTML 語法的 Form 表單,由瀏覽器將鍵值傳給伺服器,並放入伺服器的標準輸出入機制中,由於它沒有 GET 的缺點,因此可以傳送較多的資料,一般而言,我們大多使用 POST 的方式,CGI程式設計(cont.),CGI如何將傳遞資料解碼 某些字元對伺服器而言具有特殊意義,若欲傳遞給 CGI 程式處理的資料中含有這些字元,那麼

16、瀏覽器會對這些字元予以編碼,CGI 程式在取得這些經過編碼的資料後,必須進行解碼的動作,才能將傳遞的資料予以還原。if($ENVREQUEST_METHOD eq POST)read(STDIN,$temp,$ENVCONTENT_LENGTH);else$temp=$ENVQUERY_STRING;key_value=split(/此時%data 這個雜湊陣列即取得了解碼後的資料,實習步驟,系統軟硬體設置實作程式碼設置重要檔案列表實作重點提示,系統設置,系統軟硬體的設置建立Windows Host端、Linux Host端、Linux Target端三者之間的硬體環境連結。建立Linux Host端的編譯環境。實作程式碼設置將檔,安裝在Linux Host端/usr/src的相端路徑之下。,重要檔案列表,實作重點提示,編輯Source Code Make Kernel Image/Make Device Driver/User Application 編輯Root Filesystem驗證,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号