国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666)

這篇具有很好參考價(jià)值的文章主要介紹了嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

點(diǎn)贊+關(guān)注,功德無量。更多配套資料,歡迎私信。

百度網(wǎng)盤 請(qǐng)輸入提取碼百度網(wǎng)盤為您提供文件的網(wǎng)絡(luò)備份、同步和分享服務(wù)??臻g大、速度快、安全穩(wěn)固,支持教育網(wǎng)加速,支持手機(jī)端。注冊(cè)使用百度網(wǎng)盤即可享受免費(fèi)存儲(chǔ)空間https://pan.baidu.com/s/1F6BR6uTANKKcNnoaCUAZYA?pwd=1688

上午:WebServer編程????

下午:BOA介紹及其移植

教學(xué)內(nèi)容:

1、WebServer編程:

利用IE鏈接服務(wù)器的時(shí)候,會(huì)發(fā)送一個(gè)報(bào)文,報(bào)文格式如下:

嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666),嵌入式培訓(xùn)筆記,網(wǎng)絡(luò),筆記,linux,運(yùn)維,服務(wù)器,開發(fā)語言,tcp/ip

其中GET是握手,index.html是打開文件名 HTTP/1.1是協(xié)議名

對(duì)于網(wǎng)絡(luò)webserver,主要是利用,linux虛擬機(jī)下,

創(chuàng)建一個(gè)TCP主機(jī)服務(wù)器;

?????? 1)、當(dāng)有客戶端(IE)鏈接的時(shí)候,服務(wù)器響應(yīng)。

?????? 2)、主程序在鏈接成功后,在創(chuàng)建線程或者進(jìn)程去處理鏈接的隊(duì)列,同時(shí)服務(wù)器返回到accept狀態(tài)繼續(xù)下一個(gè)鏈接。(如果創(chuàng)建的是線程,必須使用線程函數(shù))

?????? 3)、線程或進(jìn)程中的處理函數(shù),主要解決通過接收的頭文,解出文件名,如果不存在,發(fā)送不存在的頭文;存在就發(fā)送成功的頭文同時(shí)read文件內(nèi)容,通過套接字發(fā)送過去(發(fā)送給IE

---------------------------

成功頭文:

------------

嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666),嵌入式培訓(xùn)筆記,網(wǎng)絡(luò),筆記,linux,運(yùn)維,服務(wù)器,開發(fā)語言,tcp/ip

--------------------------

---------------------------

失敗頭文:

------------

嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666),嵌入式培訓(xùn)筆記,網(wǎng)絡(luò),筆記,linux,運(yùn)維,服務(wù)器,開發(fā)語言,tcp/ip

--------------------------

2BOA 服務(wù)器

?????? 是一個(gè)小巧高效的web服務(wù)器,是一個(gè)運(yùn)行于unixlinux下的,支持CGI的、適合于嵌入式系統(tǒng)的單任務(wù)的http服務(wù)器,源代碼開放、性能高。   Boa   是一種非常小巧的Web服務(wù)器,其可執(zhí)行代碼只有大約60KB左右。作為一種單任務(wù)Web服務(wù)器,Boa只能依次完成用戶的請(qǐng)求,而不會(huì)fork出新的進(jìn)程來處理并發(fā)連接請(qǐng)求。但Boa支持CGI,能夠?yàn)?/span>CGI程序fork出一個(gè)進(jìn)程來執(zhí)行。Boa的設(shè)計(jì)目標(biāo)是速度和安全。

3、boa服務(wù)器在虛擬機(jī)的移植

> 編譯boa 程序

1. www.boa.org 下載boa-0.94.13-src.tar.gz

2. tar zxvf boa-0.94.13-src.tar.gz 解壓

3. cd boa-0.94.13-src

4. cd ./src

5. ./configure

6. make

> 修改配置文件boa.conf

0. 編譯完成之后cd .. 返回boa-0.94.13-src 目錄

1. 建立/etc/boa 目錄, 并復(fù)制boa.conf /etc/boa 目錄下

mkdir /etc/boa

cp boa.conf /etc/boa

2. 進(jìn)入/etc/boa 目錄打開并修改其中的boa.conf 文件

cd /etc/boa

vi boa.conf

以下操作均對(duì)/etc/boa 下的boa.conf 進(jìn)行

3. 修改User nobody User 0 ; 修改Group nogroup Group 0

4. 修改ErrorLog 選項(xiàng)和AccessLog 選項(xiàng)為:

ErrorLog /var/log/boa/error_log

AccessLog /var/log/boa/access_log

5. 設(shè)置html 文件目錄: DocumentRoot /var/www

6. 設(shè)置默認(rèn)首頁: DirectoryIndex index.html

7. 設(shè)置ScriptAlias 選項(xiàng)為:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

> 根據(jù)第二步設(shè)置建立相關(guān)文件夾并放入文件:

1. 根據(jù)(第二.4 )的設(shè)置建立/var/log/boa 文件夾和相應(yīng)文件:

mkdir /var/log/boa

touch /var/log/boa/access_log

touch /var/log/boa/error_log

2. 根據(jù)(第二.5 )的設(shè)置建立/var/www 文件夾(如果存在此文件則不用創(chuàng)建), 并在

此目錄下存放html 文件(包括index.html 文件)。

3. 根據(jù)(第二.7 )的設(shè)置建立/var/www/cgi-bin 文件夾

> OK,在編寫boa-0.94.13-src/src 文件夾下運(yùn)行./boa 程序,啟動(dòng)boa 服務(wù)器。

windows 下通過http://192.168.222.66(IP 為虛擬機(jī)的IP 地址)這種形式

訪問,進(jìn)行測試。

4、boa移植在開發(fā)板上

1>. (第一.3 )操作完成之后,修改Makefile 文件:

:

CC = gcc

CPP = gcc -E

該為:

CC = arm-linux-gcc

CPP = arm-linux-gcc -E

make 即可。

2>. 拷貝PC /etc/mime.types 文件到開發(fā)板/etc 目錄下

或者將boa.conf 文件中

MimeTypes /etc/mime.types

修改為:

MimeTypes /dev/null

boa 配置相關(guān)目錄:

1. boa.conf 的存放目錄:

默認(rèn)boa.conf 是在/etc/boa.conf 目錄的, boa 運(yùn)行時(shí)會(huì)自動(dòng)去找

/etc/bon.conf 目錄。

這個(gè)設(shè)定是在define.h 文件中定義的,可在編譯之前進(jìn)行修改。

2. log 目錄: 分為Errorlog AccessLog 兩個(gè)目錄,可在boa.conf 中修改。

:

ErrorLog /var/log/boa/error_log

AccessLog /var/log/boa/access_log

3. html 文件存放目錄, 可在boa.conf 文件中修改。

: DocumentRoot /var/www

4. cgi 腳本存放目錄, 可在boa.conf 文件中修改。

: ScriptAlias /cgi-bin/ /var/www/cgi-bin

5. mime.types 存放目錄, 可在boa.conf 文件中修改。

: MimeTypes /etc/mime.types

5、字節(jié)序

字節(jié)序是一個(gè)處理器的架構(gòu)特性

小端格式:將低位字節(jié)數(shù)據(jù)存儲(chǔ)在低地址

大端格式:將高位字節(jié)數(shù)據(jù)存儲(chǔ)在低地址

網(wǎng)絡(luò)協(xié)議指定了通訊字節(jié)序--大端

字節(jié)序轉(zhuǎn)換函數(shù):

uint32_t htonl(uint32_t hostint32);

uint16_t htons(uint16_t hostint16);

以上返回網(wǎng)絡(luò)字節(jié)序

uint32_t ntohl(uint32_t netint32);

uint16_t ntohs(uint16_t netint16);

以上返回主機(jī)字節(jié)序

#include <arpa/inet.h>

以上都是無符號(hào)整型之間的轉(zhuǎn)換,即大端和小端之間的轉(zhuǎn)換。

6、到點(diǎn)分十進(jìn)制數(shù)串:

在網(wǎng)絡(luò)傳輸中,IP是以一個(gè)32位無符號(hào)整型傳輸,而實(shí)際的IP以字符型表示,比如:192.168.222.66;

int inet_pton(int family, const char *strptr,void *addrptr);

family:什么協(xié)議,是inet就是AF_INET;

strptr:存IP的字符地址或指針

addrptr:字符長度的指針

??成功返回1,否則返回0

const char *inet_ntop(int family,const void *addrptr,char *strptr,size_t len);

family:什么協(xié)議,是inet就是AF_INET;

addrptr:存網(wǎng)絡(luò)(是無符號(hào)整型,一般是結(jié)構(gòu)體中的&client_addr.sin_addr)IP的地址

strptr:存IP的字符地址或指針

len:存字符長度

#define INET_ADDRSTRLEN 16

#define INET6_ADDRSTRLEN 46 //for ipv6

7、TCP通信的過程

嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666),嵌入式培訓(xùn)筆記,網(wǎng)絡(luò),筆記,linux,運(yùn)維,服務(wù)器,開發(fā)語言,tcp/ip

TCP的通信是在三次握手協(xié)議之后,服務(wù)器必須經(jīng)過創(chuàng)建套接字、綁定套接字、監(jiān)聽套接字和接受套接字幾個(gè)步驟。

對(duì)于通信雙方可以使用系統(tǒng)調(diào)用readwrite;也可以使用send和recv

#include <sys/socket.h>

ssize_t send(int sockfd, const void *buf,size_t nbytes, int flags);

ssize_t recv(int sockfd, void *buf,size_t nbytes, int flags);

返回讀到或?qū)懙降淖止?jié)數(shù)

sockfd:聯(lián)絡(luò)的套接字

buf:發(fā)送(存儲(chǔ))的緩存數(shù)據(jù)地址

nbytes:發(fā)送(存儲(chǔ))字節(jié)大小

flags:阻塞還是不阻塞等宏作用,一般為0阻塞

8、關(guān)閉套接字

對(duì)于TCP通信來說,要先關(guān)閉客戶端才能關(guān)閉服務(wù)器

關(guān)閉使用close()函數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-800967.html

到了這里,關(guān)于嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-Linux網(wǎng)絡(luò)編程第二天-TCP編程(物聯(lián)技術(shù)666)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包