国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

寫一個簡易web服務器、ASP.NET核心知識(4)

2019-11-17 02:01:58
字體:
來源:轉載
供稿:網友

寫一個簡易web服務器、asp.net核心知識(4)

前言

昨天嘗試了,基于對http協議的探究,我們用控制臺寫了一個簡單的瀏覽器。盡管瀏覽器很low,但是對于http協議有個更好的理解。

clipboard說了上面這一段,諸位猜到我要干嘛了嗎?(其實不用猜哈,標題里都有,又都不瞎。。。我就是調侃一下,說些沒營養的笑話。我認為這樣能不那么枯燥,盡管不好笑吧,但這不重要!)

沒錯,今天要嘗試的東西,是自己寫一個web服務器。初衷依舊和昨天一樣,旨在理解一些東西,而不是真的寫出一個多牛的東西。

第一次嘗試(V1.0)

1.理論支持

其實關于http協議的理論方面我在《寫一個瀏覽器》的博文中已經說過了,這里不再累述了。

這里主要要說的關于Socket方面的。主要是一個例子,關于Socket如何建立服務端程序的簡單的代碼掩飾。

       static void Main(string[] args)        {            //創建一個新的Socket,這里我們使用最常用的基于TCP的Stream Socket(流式套接字)            var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, PRotocolType.Tcp);            //將該socket綁定到主機上面的某個端口            socket.Bind(new ipEndPoint(IPAddress.Any, 4530));            //啟動監聽,并且設置一個最大的隊列長度            socket.Listen(4);            //到這里我們的Socket已經運行起來了,但僅僅是運行起來,什么都不會做的!            Console.WriteLine("Server is ready!");            Console.Read();        }

打開調試一口,因為要監聽某個端口,windows會有這樣的一個提示。點允許就好了。

clipboard[1]

從上面例子看,socket的職責僅僅是監聽4530端口,什么都不會做的!

就像一個人的耳朵。他會聆聽,但是不會傾訴。職責所限,我們需要一個監聽4530端口的耳朵。

但是從交流的角度看,web服務器僅僅能聆聽是不夠的。

請求來了以后(監聽到請求以后),我還需要一個既能聆聽,又能訴說的Socket。去和請求交流。

剛剛那個socket為啥不能直接交流呢? 不不不,他得繼續去聆聽新的請求。

2.說說思路

這次實驗的主要思路是這樣的。

1)監聽4530端口

2)當請求來了以后,我們使用Socket socket = serverSocket.Accept();建立一個新的socket。

3)新的socket返回一個字符串給請求方!

完了(讀liao)。

也就是說,我們v1.0版本的web服務器,不管你如何請求,他都會返回你同一個字符串!(任性吧?其實我挺喜歡就這樣的。)

3.代碼

static void Main(string[] args){            //我僅負責聆聽,因為你來了,我就得接
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘潭市| 环江| 白山市| 南和县| 舟曲县| 柘城县| 大埔县| 壤塘县| 嘉兴市| 大宁县| 高邮市| 关岭| 怀集县| 沧州市| 保山市| 青岛市| 丰原市| 仁怀市| 辽宁省| 茌平县| 泌阳县| 永修县| 乐山市| 潮安县| 镇康县| 东安县| 南澳县| 时尚| 芦溪县| 金山区| 义乌市| 麻阳| 宜君县| 乌拉特后旗| 新昌县| 惠东县| 洪江市| 梅河口市| 十堰市| 吉林市| 高雄县|