bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

基于C#動手實現網絡服務器WebServer-創新互聯

前言

創新互聯是一家專業提供梅縣企業網站建設,專注與網站建設、成都網站設計、H5高端網站建設、小程序制作等業務。10年已為梅縣眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

最近在學習網絡原理,突然萌發出自己實現一個網絡服務器的想法,并且由于第三代小白機器人的開發需要,我把之前使用python、PHP寫的那部分代碼都遷移到了C#(別問我為什么這么喜歡C#),之前使用PHP就是用來處理網絡請求的,現在遷移到C#了,而Linux系統上并沒有IIS服務器,自然不能使用ASP.Net,所以這個時候自己實現一個功能簡單的網絡服務器就恰到好處地解決這些問題了。

基本原理

Web Server在一個B/S架構系統中起到的作用不僅多而且相當重要,Web開發者大部分時候并不需要了解它的詳細工作機制。雖然不同的Web Server可能功能并不完全一樣,但是以下三個功能幾乎是所有Web Server必須具備的:

接收來自瀏覽器端的HTTP請求
將請求轉發給指定Web站點程序(后者由Web開發者編寫,負責處理請求)
向瀏覽器發送請求處理結果

下圖顯示Web Server在整個Web架構系統中所處的重要位置:

基于C#動手實現網絡服務器Web Server

如上圖,Web Server起到了一個“承上啟下”的作用(雖然并沒有“上下”之分),它負責連接用戶和Web站點。

每個網站就像一個個“插件”,只要網站開發過程中遵循了Web Server提出的規則,那么該網站就可以“插”在Web Server上,我們便可以通過瀏覽器訪問網站。

太長不看版原理

瀏覽器想要拿到哪個文件(html、css、js、image)就和服務器發請求信息說我要這個文件,然后服務器檢查請求合不合法,如果合法就把文件數據傳回給瀏覽器,這樣瀏覽器就可以把網站顯示出來了。(一個網站一般會包含n多個文件)

話不多說,直接上代碼

在C#中有兩種方法可以簡單實現Web服務器,分別是直接使用Socket和使用封裝好的HttpListener。

因為后者比較方便一些,所以我選擇使用后者。

這是最簡單的實現一個網絡服務器,可以處理瀏覽器發過來的請求,然后將指定的字符串內容返回。

class Program
{
  static void Main(string[] args)
  {
    string port = "8080";
    HttpListener httpListener = new HttpListener();
    httpListener.Prefixes.Add(string.Format("http://+:{0}/", port));
    httpListener.Start();
    httpListener.BeginGetContext(new AsyncCallback(GetContext), httpListener); //開始異步接收request請求
    Console.WriteLine("監聽端口:" + port);
    Console.Read();
  }

  static void GetContext(IAsyncResult ar)
  {
    HttpListener httpListener = ar.AsyncState as HttpListener;
    HttpListenerContext context = httpListener.EndGetContext(ar); //接收到的請求context(一個環境封裝體)

    httpListener.BeginGetContext(new AsyncCallback(GetContext), httpListener); //開始 第二次 異步接收request請求

    HttpListenerRequest request = context.Request; //接收的request數據
    HttpListenerResponse response = context.Response; //用來向客戶端發送回復

    response.ContentType = "html";
    response.ContentEncoding = Encoding.UTF8;

    using (Stream output = response.OutputStream) //發送回復
    {
      byte[] buffer = Encoding.UTF8.GetBytes("要返回的內容");
      output.Write(buffer, 0, buffer.Length);
    }
  }
}

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

新聞名稱:基于C#動手實現網絡服務器WebServer-創新互聯
文章網址:http://vcdvsql.cn/article34/ccidse.html

成都網站建設公司_創新互聯,為您提供標簽優化、ChatGPT、商城網站、響應式網站、服務器托管、品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化