cgi伺服器原理
#include
#include
#include
#include
#include
#include
#include
intmain()
;struct sockaddr_in s_add, c_add;
unsigned
short portnum =
12345
;char ip=
"192.168.30.150"
;printf
("this is client\r\n");
cfd =
socket
(af_inet, sock_stream,0)
;if(-
1== cfd)
printf
("sokcet ok!\r\n");
bzero
(&s_add,
sizeof
(struct sockaddr_in));
s_add.sin_family = af_inet;
s_add.sin_addr.s_addr =
inet_addr
(ip)
; s_add.sin_port =
htons
(portnum);if
(-1==
connect
(cfd,
(struct sockaddr *)(
&s_add)
,sizeof
(struct sockaddr)))
printf
("connect ok!\r\n");
if(-1
==(recbytes =
read
(cfd, buffer,
1024))
)printf
("read ok:");
buffer[recbytes]
='\0'
;printf
("%s\r\n"
, buffer)
;printf
("press any key to quit");
getchar()
;close
(cfd)
;return0;
}
先關閉標準輸出檔案描述符stdout_fileno(其值是1),然後複製socket檔案描述符connfd,因為dup總是返回系統中最小的可用檔案描述符,所以他的返回值實際上是1,即之前關閉的標準輸出檔案描述符的值.這樣一來,伺服器輸出到標準輸出的內容就會直接傳送到與客戶端對應連線的socket boa伺服器實現CGI功能
cgi 是web 伺服器執行時外部程式的規範,按cgi 編寫的程式可以擴充套件伺服器功能。cgi 應用程式能與瀏覽器進行互動,還可通過資料庫api 與資料庫伺服器等外部資料來源進行通訊,從資料庫伺服器中獲取資料。格式化為html文件後,傳送給瀏覽器,也可以將從瀏覽器獲得的資料放到資料庫中。幾乎所有伺...
Linux伺服器 apache支援cgi
apache支援cgi 1 開啟apache配置檔案httpd.conf,搜尋 cgi 找到下面的一段,去掉 addhandler 前面的 這樣就開啟了apache的cgi功能 2 cgi的目錄在 var www cgi bin 在這裡建立乙個測試檔案 test.cgi 輸入內容如下 root lo...
http伺服器與cgi互動過程
在處理cgi get 表單時,伺服器傳送給cgi程式是通過環境變數傳送的,並且get的表單內容存放在query string中,因此,在伺服器與cgi程式通訊之前,會先把get表單進行解析,並建立環境變數。同時,由於cgi程式是通過標準輸出向伺服器輸出資料,因此在通訊之前,還需要建立一條伺服器與cg...