當前位置:首頁 » 操作系統 » boa源碼分析

boa源碼分析

發布時間: 2022-05-11 12:38:10

⑴ 高分求 boa 下 c寫的 文件上傳 源碼

void main()
{

char *data;
int ByteLength;
char *readstr;
int i=0,fd;

data=getenv("CONTENT_LENGTH");
ByteLength=atoi(data);

readstr=(char *)malloc(ByteLength+1);
//setmode(_fileno(stdin), _O_BINARY);/****在linux下沒有***/
fread(readstr,ByteLength+1,ByteLength+1,stdin);
readstr[ByteLength]=0;

fd=open("ftpfile",O_RDWR | O_CREAT);
write(fd,readstr,ByteLength);

close(fd);
}

給各位拜個晚年嘍!

⑵ 關於路由器研發生產的流程是什麼

硬體方面:
1、要明確家用小型路由器(一個WAN介面,四個LAN介面)的硬體原理。
2、實現硬體電路板設計,完成電路布線設計,並對元件焊接,通過硬體板的調試。
軟體方面:
1、在分析 uClinux內核源代碼的基礎上,對uClinux操作系統的內核裁剪。
2、完成BoaWeb伺服器的配置,並對CGI腳本進行設計,完成動態網頁的功能。
3、對PPPOE的撥號進行配置實現。
4、針對Linux內核防火牆部分,運用IPtable工具進行防火牆規則操作。
通過如上的基本構造,一個路由器就基本成型了。說起來簡單,但其中包含了很多很多的技術細節,要有大量的實踐經驗才能真正實現。
路由器(Router,又稱路徑器)是一種計算機網路設備,它能將數據包通過一個個網路傳送至目的地(選擇數據的傳輸路徑),這個過程稱為路由。路由器就是連接兩個以上各別網路的設備,路由工作在OSI模型的第三層——即網路層,例如網際協議(Internet Protocol,IP)層。

⑶ linux的Boa伺服器

Boa是一種非常小巧的Web伺服器,其可執行代碼只有大約60KB左右。作為一種單任務Web伺服器,Boa只能依次 完成用戶的請求,而不會fork出新的進程來處理並發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度 和安全。 下面給大家介紹一下Boa伺服器移植的具體操作步驟,希望能夠有幫助。 環境 主機:ubuntu8.10 交叉工具鏈:gcc-3.4.5-glibc-2.3.6 目標:s3c2410開發板 結合網上一些文檔,整理了一個比較完整的文檔。 1.下載Boa源碼 下載地址: http://www.boa.org/ 最新發行版本: 0.94.13 下載boa-0.94.13.tar.gz 解壓:# tar xzf boa-0.94.13.tar.gz 2.安裝需要工具bison,flex sudo apt-get install bison flex 否則會出現如下錯誤 make: yacc:命令未找到 make: *** [y.tab.c] 錯誤 127 make: lex:命令未找到 make: *** [lex.yy.c] 錯誤 127 3.修改文件 (1)修改 src/compat.h 找到 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 否則會出現錯誤: util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 錯誤 1 (2)修改 src/log.c 注釋掉 if (p2(error_log, STDERR_FILENO) == -1) { DIE("unable to p2 the error log"); } 為: /*if (p2(error_log, STDERR_FILENO) == -1) { DIE("unable to p2 the error log"); }*/ 否則會出現錯誤: log.c:73 unable to p2 the error log:bad file deor (3)修改src/boa.c 注釋掉下面兩句話: if (passwdbuf == NULL) { DIE(」getpwuid」); } if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) { DIE(」initgroups」); } 為 #if 0 if (passwdbuf == NULL) { DIE(」getpwuid」); } if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) { DIE(」initgroups」); } #endif 否則會出現錯誤:boa.c:211 - getpwuid: No such file or directory 注釋掉下面語句: if (setuid(0) != -1) { DIE(」icky Linux kernel bug!」); } 為 #if 0 if (setuid(0) != -1) { DIE(」icky Linux kernel bug!」); } #endif 否則會出現問題:boa.c:228 - icky Linux kernel bug!: No such file or directory 4、生成Makefile文件 執行: #cd boa-0.94.13/src #./configure 5、修改Makefile cd src vim Makefile 修改CC = gcc 為 CC = arm-softfloat-linux-gnu-gcc 修改CPP = gcc -E 為 CC = arm-softfloat-linux-gnu-gcc -E 6、編譯 make ls -l boa -rwxr-xr-x 1 david david 189223 2009-05-31 13:44 boa 然後為生成的二進制文件boa瘦身 arm-softfloat-linux-gnu-strip boa ls -l boa -rwxr-xr-x 1 david david 61052 2009-05-31 13:51 boa 可以發現boa的大小前後差距很大這為我們節省了很大的空間 7、Boa的配置 這一步的工作也在電腦主機上完成。 在boa-0.94.13目錄下已有一個示例boa.conf,可以在其基礎上進行修改。如下: #vi boa.conf (1)Group的修改 修改Group nogroup 為Group 0 (2)user的修改 修改User nobody 為User 0 (3)Alias的修改 修改Alias /cgi-bin/ /usr/lib/cgi-bin/ 為Alias /cgi-bin/ /www/cgi-bin/ (5)DoucmentRoot的修改 修改DoucmentRoot /var/www 為DoucmentRoot /www (6)ServerName的設置 修改#ServerName www.your.org.here 為ServerName www.your.org.here 否則會出現錯誤「gethostbyname::No such file or directory」 (7)AccessLog修改 修改AccessLog /var/log/boa/access_log 為#AccessLog /var/log/boa/access_log 否則會出現錯誤提示:「unable to p2 the error log: Bad file deor」 (8)以下配置和boa.conf的配置有關,都是在ARM根文件系統中創建 以下步驟在開發板上進行: 創建目錄/etc/boa並且把boa 和 boa.conf拷貝到這個目錄下 mkdir /etc/boa 創建HTML文檔的主目錄/www mkdir /www 創建CGI腳本所在錄 /www/cgi-bin mkdir /www/cgi-bin 以下步驟在ubuntu下進行: 將boa.conf拷貝到開發板根文件系統的/etc/boa下 #cp boa.conf /source/rootfs/etc/boa 將boa拷貝到開發板根文件系統的/etc/boa下 #cp src/boa /source/rootfs/etc/boa 將ubuntu下/etc/mime.types拷貝到開發板根文件系統的/etc下 #cp /etc/mime.types /source/rootfs/etc 將你的主頁index.html拷貝到www目錄下 8、測試 打開一個瀏覽器輸入開發板ip看看效果 OK

⑷ 嵌入式 ARM 網路伺服器怎麼搭建

BOA 伺服器是一個小巧高效的web伺服器,是一個運行於unix或linux下的,支持CGI的、適合於嵌入式系統的單任務的http伺服器,源代碼開放、性能高。 boa是一種非常小巧的Web伺服器,其可執行代碼只有大約60KB左右。作為一種單任務Web伺服器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理並發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度和安全。cgi在物理上是一段程序,運行在伺服器上,提供同客戶端HTML頁面的介面。即客戶端與伺服器的介面。比如留言本的工作流程:先由用戶在客戶端輸入一些信息,如名字之類的東西。接著用戶按一下「留言」(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到伺服器的CGI目錄下特定的cgi程序中,於是cgi程序在伺服器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然後cgi程序給客戶端發送一個信息,表示請求的任務已經結束。此時用戶在瀏覽器里將看到「留言結束」的字樣。整個過程結束。

⑸ 學習Python到底能幹什麼

Python實際上是一種編程語言,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智慧,Web開發等。

1989年聖誕節,阿姆斯特丹,為了度過無聊的聖誕節,年輕人Guido決定開發一種新的編程語言。 Python(Boa Constrictor)的名字是因為他是Monty Python喜劇小組的粉絲。你看,技術是如此隨意...

⑹ 在linux中移植嵌入式Boa伺服器時出錯

第一步完成Boa程序的移植。從www.boa.org下載Boa源碼,當前最新版本為0.94.13,將其解壓並進入源碼目錄的src子目錄
# tar xzf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
生成Makefile文件
# ./configure
修改Makefile文件,找到CC=gcc,將其改成CC = arm-linux-gcc,再找到CPP = gcc –E,將其改成CPP = arm-linux-gcc –E,並保存退出。
然後運行make進行編譯,得到的可執行程序為boa,將調試信息剝去,得到的最後程序只有約60KB大小。
# make
# arm-linux-strip boa
第二步完成Boa的配置,使其能夠支持CGI程序的執行。Boa需要在/etc目錄下建立一個boa目錄,裡面放入Boa的主要配置文件boa.conf。在Boa源碼目錄下已有一個示例boa.conf,可以在其基礎上進行修改,下面解釋一下該文件的含義:
#監聽的埠號,預設都是80,一般無需修改
Port 80
# bind調用的IP地址,一般注釋掉,表明綁定到INADDR_ANY,通配於伺服器的所有IP地址
#Listen 192.68.0.5
#作為哪個用戶運行,即它擁有該用戶的許可權,一般都是nobody,需要/etc/passwd中有
#nobody用戶
User nobody
#作為哪個用戶組運行,即它擁有該用戶組的許可權,一般都是nogroup,需要在/etc/group文
#件中有nogroup組
Group nogroup
#當伺服器發生問題時發送報警的email地址,目前未用,注釋掉
#ServerAdmin root@localhost
#錯誤日誌文件。如果沒有以/開始,則表示從伺服器的根路徑開始。如果不需要錯誤日誌,則用#/dev/null。在下面設置時,注意一定要建立/var/log/boa目錄
ErrorLog /var/log/boa/error_log
#訪問日誌文件。如果沒有以/開始,則表示從伺服器的根路徑開始。如果不需要錯誤日誌,則用#/dev/null或直接注釋掉。在下面設置時,注意一定要建立/var/log/boa目錄
#AccessLog /var/log/boa/access_log
#是否使用本地時間。如果沒有注釋掉,則使用本地時間。注釋掉則使用UTC時間
#UseLocaltime
#是否記錄CGI運行信息,如果沒有注釋掉,則記錄,注釋掉則不記錄
#VerboseCGILogs
#伺服器名字
ServerName www.hyesco.com
#是否啟動虛擬主機功能,即設備可以有多個網路介面,每個介面都可以擁有一個虛擬的Web服
#務器。一般注釋掉,即不需要啟動
#VirtualHost
#非常重要,HTML文檔的主目錄。如果沒有以/開始,則表示從伺服器的根路徑開始。
DocumentRoot /var/www
#如果收到一個用戶請求的話,在用戶主目錄後再增加的目錄名
UserDir public_html
#HTML目錄索引的文件名,也是沒有用戶只指明訪問目錄時返回的文件名
DirectoryIndex index.html
#當HTML目錄沒有索引文件時,用戶只指明訪問目錄時,boa會調用該程序生成索引文件然後
#返回給用戶,因為該過程比較慢最好不執行,可以注釋掉或者給每個HTML目錄加上#DirectoryIndex指明的文件
#DirectoryMaker /usr/lib/boa/boa_indexer
#如果DirectoryIndex不存在,並且DirectoryMaker被注釋,那麼就用Boa自帶的索引
#生成程序來生成目錄的索引文件並輸出到下面目錄,該目錄必須是Boa能讀寫
# DirectoryCache /var/spool/boa/dircache
#一個連接所允許的HTTP持續作用請求最大數目,注釋或設為0都將關閉HTTP持續作用
KeepAliveMax 1000
#HTTP持續作用中伺服器在兩次請求之間等待的時間數,以秒為單位,超時將關閉連接
KeepAliveTimeout 10
#指明mime.types文件位置。如果沒有以/開始,則表示從伺服器的根路徑開始。可以注釋掉
#避免使用mime.types文件,此時需要用AddType在本文件里指明
MimeTypes /etc/mime.types
#文件擴展名沒有或未知的話,使用的預設MIME類型
DefaultType text/plain
#提供CGI程序的PATH環境變數值
CGIPath /bin:/usr/bin:/usr/local/bin
#將文件擴展名和MIME類型關聯起來,和mime.types文件作用一樣。如果用mime.types
#文件,則注釋掉,如果不使用mime.types文件,則必須使用
#AddType application/x-httpd-cgi cgi
#指明文檔重定向路徑
#Redirect /bar http://elsewhere/feh/bar
#為路徑加上別名
Alias /doc /usr/doc
#非常重要,指明CGI腳本的虛擬路徑對應的實際路徑。一般所有的CGI腳本都要放在實際路徑
#里,用戶訪問執行時輸入站點+虛擬路徑+CGI腳本名
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
用戶可以根據自己需要,對boa.conf進行修改,但必須要保證其他的輔助文件和設置必須和boa.conf里的配置相符,不然Boa就不能正常工作。 在上面的例子中,我們還需要創建日誌文件所在目錄/var/log/boa,創建HTML文檔的主目錄/var/www,將mime.types文件拷貝 到/etc目錄,創建CGI腳本所在目錄/var/www/cgi-bin/。mime.types文件用來指明不同文件擴展名對應的MIME類型,一般 可以直接從Linux主機上拷貝一個,大部分也都是在主機的/etc目錄下。

⑺ 路由器代工生產需要注意什麼

要明確家用小型路由器(一個WAN介面,四個LAN介面)的硬體原理。實現硬體電路板設計,完成電路布線設計,並對元件焊接,通過硬體板的調試。
1、在分析 uClinux內核源代碼的基礎上,對uClinux操作系統的內核裁剪。
2、完成BoaWeb伺服器的配置,並對CGI腳本進行設計,完成動態網頁的功能。
3、對PPPOE的撥號進行配置實現。
4、針對Linux內核防火牆部分,運用IPtable工具進行防火牆規則操作。
路由器(Router,又稱路徑器)是一種計算機網路設備,它能將數據包通過一個個網路傳送至目的地(選擇數據的傳輸路徑),這個過程稱為路由。路由器就是連接兩個以上各別網路的設備,路由工作在OSI模型的第三層——即網路層,例如網際協議(Internet Protocol,IP)層。

⑻ BOA:著名嵌入式系統網頁伺服器源代碼

知道

⑼ boa支持rtmp嗎

支持。
Boa支持rtmp,能夠為rtmp程序fork出一個進程來執行。Boa的設計目標是速度和安全,rtmp在物理上是一段程序,運行在伺服器上,提供同客戶端HTML頁面的介面。
BOA伺服器是一個小巧高效的web伺服器,是一個運行於unix或linux下的,支持CGI的、適合於嵌入式系統的單任務的http伺服器,源代碼開放、性能高。Boa是一種非常小巧的Web伺服器,其可執行代碼只有大約60KB左右。作為一種單任務Web伺服器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理並發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度和安全。

⑽ LEX的描述過濾C代碼中注釋符/**/的語句是什麼

Boa是一種非常小巧的Web伺服器,其可執行代碼只有大約60KB左右。作為一種單任務Web伺服器,Boa只能依次 完成用戶的請求,而不會fork出新的進程來處理並發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度 和安全。下面給大家介紹一下Boa伺服器移植的具體操作步驟,希望能夠有幫助。環境主機:ubuntu8.10交叉工具鏈:gcc-3.4.5-glibc-2.3.6目標:s3c2410開發板結合網上一些文檔,整理了一個比較完整的文檔。1.下載Boa源碼下載地址: 最新發行版本: 0.94.13下載 boa-0.94.13.tar.gz解壓:# tar xzf boa-0.94.13.tar.gz2.安裝需要工具bison,flexsudo apt-get install bison flex否則會出現如下錯誤make: yacc:命令未找到make: *** [y.tab.c] 錯誤 127make: lex:命令未找到make: *** [lex.yy.c] 錯誤 1273.修改文件(1)修改 src/compat.h找到#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff修改成#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff否則會出現錯誤:util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 錯誤 1(2)修改 src/log.c注釋掉if (p2(error_log, STDERR_FILENO) == -1) 為:/*if (p2(error_log, STDERR_FILENO) == -1) */否則會出現錯誤:log.c:73 unable to p2 the error log:bad file deor(3)修改src/boa.c注釋掉下面兩句話:if (passwdbuf == NULL) if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) 為#if 0if (passwdbuf == NULL) if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) #endif否則會出現錯誤:boa.c:211 - getpwuid: No such file or directory注釋掉下面語句:if (setuid(0) != -1) 為#if 0if (setuid(0) != -1) #endif否則會出現問題:boa.c:228 - icky Linux kernel bug!: No such file or directory4、生成Makefile文件執行:#cd boa-0.94.13/src#./configure5、修改Makefilecd srcvim Makefile修改CC = gcc 為 CC = arm-softfloat-linux-gnu-gcc修改CPP = gcc -E 為 CC = arm-softfloat-linux-gnu-gcc -E6、編譯makels -l boa-rwxr-xr-x 1 david david 189223 2009-05-31 13:44 boa然後為生成的二進制文件boa瘦身arm-softfloat-linux-gnu-strip boals -l boa-rwxr-xr-x 1 david david 61052 2009-05-31 13:51 boa可以發現boa的大小前後差距很大這為我們節省了很大的空

熱點內容
源碼種類 發布:2024-10-09 11:20:35 瀏覽:363
android圖片xml 發布:2024-10-09 11:11:08 瀏覽:531
交換機基本配置與遠程登錄怎麼做 發布:2024-10-09 11:02:06 瀏覽:674
伺服器遠程地址怎麼看 發布:2024-10-09 10:43:24 瀏覽:140
隱身訪問訪客會增加嗎 發布:2024-10-09 10:38:29 瀏覽:209
vb代碼如何編譯 發布:2024-10-09 10:22:59 瀏覽:914
sql無效的連接 發布:2024-10-09 10:19:31 瀏覽:70
javaif條件 發布:2024-10-09 10:01:04 瀏覽:958
安卓愛思助手怎麼改戰區 發布:2024-10-09 09:25:29 瀏覽:181
安卓手機用什麼軟體傳軟體到蘋果 發布:2024-10-09 09:11:02 瀏覽:371