前面兩篇文章分別介紹了基於原始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 當伺服器支援斷點...