搭建伺服器之處理目錄
上節,(linux c搭建http伺服器(一))搭建http中我們只處理了普通檔案,這節,我們嘗試處理一下資料夾。
要處理資料夾要明白資料夾以什麼形式回饋給客戶端。而且要清楚我要開啟的資料夾不一樣,應該反饋給客戶端不一樣的
我們接上節的處理。
生成html
當開啟資料夾時把資料夾中的所有檔案給用(html)傳送出來。所以如何寫html就成了問題。這裡建議使用唯一的id去定義這個html。因為我們要處理的並不是乙個客戶端,而是多個,如果僅有乙個html的話容易出現錯誤,一般的處理是使用時間戳去定義(當然這裡看自己的習慣)。
//定義html的名字
int ret =
sprintf
(filename,
"%ld_%d_index.html"
,time
(null
), fd)
;int filesize =
0;
html的基本語法,大家一定有了解。???(一切從簡)。
那我們就需要先把這些必要的給寫下來
//建立html
int srcfd =
open
(filename, o_rdwr|o_creat|o_trunc,
0666);
if(srcfd <0)
//開頭
char buf[
1024]=
"");
filesize +
=write
(srcfd, buf,
strlen
(buf)
);
傳送目錄
傳送目錄
send_header
(fd,
200,
"ok"
,get_mime_type
(filename)
, filesize)
;send_file
(filename, fd)
;
2.刪除html(用完就刪,工具人)
unlink
(filename)
;
**int
product_file
(char
*path,
char
*filename,
int bufsize,
int fd)
//建立或開啟
int srcfd =
open
(filename, o_rdwr|o_creat|o_trunc,
0666);
if(srcfd <0)
//寫開頭
char buf[
1024]=
"");
filesize +
=write
(srcfd, buf,
strlen
(buf));
close
(srcfd)
;return filesize;
}int
send_dir
(char
*path,
int fd)
;int filesize =
product_file
(path, filename,
256, fd);if
(filesize <0)
//2. 傳送頭+檔案
send_header
(fd,
200,
"ok"
,get_mime_type
(filename)
, filesize)
;send_file
(filename, fd)
;unlink
(filename)
;return0;
}
http服務搭建
http伺服器搭建 主配置檔案在 etc httpd conf httpd.conf 安裝http yum install httpd y 啟動http伺服器 systemctl start httpd.service 檢視安裝狀態 systemctl status httpd.service 關閉...
http服務搭建
http伺服器搭建 主配置檔案在 etc httpd conf httpd.conf 安裝http yum install httpd y 啟動http伺服器 systemctl start httpd.service 檢視安裝狀態 systemctl status httpd.service 關閉...
HTTP服務搭建(三)
專案 使用apache進行web 搭建 一 基於ip 1.配置防火牆和selinux 2.給網絡卡配置ip 3.配置目錄檔案 4.編輯配置檔案 5.重啟服務測試 1.這裡對防火牆和selinux進行的是粗糙的操作,關閉。systemsctl stop firewalld setenfoece 0 2...