基於HttpListener的web伺服器

2021-09-07 05:43:07 字數 2603 閱讀 9762

前面兩篇文章分別介紹了基於原始socket的web伺服器和基於tcplistener的web伺服器,本篇文章將繼續介紹另外一種基於httplistener的。

httplistener進一步的簡化了http協議的監聽,僅需通過字串的方法提供監聽的位址和埠號以及虛擬路徑,就可以開始監聽工作了。

//設定字首,必須以『/』結尾

string prefixes = new

string ;

//初始化***

//將字首新增到***

foreach (var item in

prefixes)

//判斷是否已經啟動了***,如果沒有則開啟

if (!listener.islistening)

//提示

console.writeline("

伺服器已經啟動,開始監聽....");

//列印接收型別

console.writeline("

accept:

", string.join(","

, request.accepttypes));

//列印接收語言

console.writeline("

accept-language:

", string.join(","

, request.userlanguages));

//列印編碼格式

console.writeline("

accept-encoding:

", string.join("

,", request.headers["

accept-encoding

"]));

//客戶端引擎

console.writeline("

user-agent:

", string.join(","

, request.useragent));

//是否長連線

console.writeline("

connection: ",

request.keepalive ? "

keep-alive

" : "

close");

//客戶端主機

console.writeline("

host:

", request.userhostname);

console.writeline(

"pragma:

", request.headers["

pragma

"]);

//取得響應物件

//構造響應內容

//準備傳送到客戶端的網頁

string responsebody = "";

//設定響應頭部內容,長度及編碼

response.contentlength64 =system.text.encoding.utf8.getbytecount(responsebody);

response.contenttype = "

text/html; charset=utf-8";

//輸出響應內容

system.io.stream output =response.outputstream;

system.io.streamwriter sw = new

system.io.streamwriter(output);

sw.write(responsebody);

sw.dispose();

break

; }

//關閉伺服器

listener.close();

console.read();}}

}啟動伺服器,並在瀏覽器中輸入:http://localhost:8888/ 回車

在使用httplistener時,我們可以通過物件的屬性獲取到請求和響應的引數。

HttpListener的幾種用法

簡單的httplistener 示例 1 public static void newmethod1 2 8888 新增需要監聽的url範圍 5 listener.start 開始監聽埠,接收客戶端請求 6 console.writeline listening.78 阻塞主函式至接收到乙個客戶端請...

c 使用HttpListener監聽HTTP請求

最近在專案上需要與第三方系統對接,對方會通過http請求定時推送資料,因此需要在專案中新增監聽http請求的功能,查閱了相關資料,使用system.net下的httplistener實現此功能。基本變數private listeneruri private httplistener listener...

用HttpListener實現檔案斷點續傳

普通方式請求伺服器上的乙個文時,所發出的請求和接受到的伺服器如下 request header cache control no cache connection close pragma no cache accept host localhost response header 當伺服器支援斷點...