談談在WebServer中如何實現CGI技術

2021-04-15 15:37:58 字數 1871 閱讀 2420

談談webserver中如何實現cgi技術

在webserver中,cgi技術的實現相信許多人很感興趣,不過在一些開源軟體如apache中,由於軟體規模大,相關模組多,直接去讀懂是如何實現的比較費勁,下面就來談談cgi技術的實現方法。

要實現cgi技術,關鍵是要實現執行其他應用程式時,將應用程式的輸出從螢幕重定向到socket中去,實現了應用程式的輸出重定向後,cgi實現就很簡單了。

下面以windows平台為例來實現cgi技術。以下的cgi_writeclient()函式便實現了將cgi程式的輸出結果重定向到socket的功能。

在以上**中,cgi_exec是實現建立程序,並將程序的輸出定向到管道中,然後在cgi_writeclient()函式中,先建立管道,然後呼叫cgi_exec()函式建立cgi程序並將其輸出定向到剛建立的管道中,

然後呼叫waitforsingleobject()函式來等待cgi程序執行,注意不是等到程序結束後才從管道讀資料。

在cgi程序的執行過程中,每等一段時間,就從管道中讀取一部分資料,呼叫send()函式傳送到socket中去。當等到cgi程序結束後,再從管道中將剩餘的資料全部讀出發送到socket中去。這樣就實現了cgi的功能。

談談在WebServer中如何實現CGI技術

談談在webserver中如何實現cgi技術 在webserver中,cgi技術的實現相信許多人很感興趣,不過在一些開源軟體如apache中,由於軟體規模大,相關模組多,直接去讀懂是如何實現的比較費勁,下面就來談談cgi技術的實現方法。要實現cgi技術,關鍵是要實現執行其他應用程式時,將應用程式的輸...

談談在WebServer中如何實現CGI技術

談談在webserver中如何實現cgi技術 在webserver中,cgi技術的實現相信許多人很感興趣,不過在一些開源軟體如apache中,由於軟體規模大,相關模組多,直接去讀懂是如何實現的比較費勁,下面就來談談cgi技術的實現方法。要實現cgi技術,關鍵是要實現執行其他應用程式時,將應用程式的輸...

談談在WebServer中如何實現CGI技術

談談在webserver中如何實現cgi技術 在webserver中,cgi技術的實現相信許多人很感興趣,不過在一些開源軟體如apache中,由於軟體規模大,相關模組多,直接去讀懂是如何實現的比較費勁,下面就來談談cgi技術的實現方法。要實現cgi技術,關鍵是要實現執行其他應用程式時,將應用程式的輸...