-
大小: 120KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-09
- 語言: C#
- 標(biāo)簽: Web服務(wù)器??
資源簡介
Web服務(wù)器,實(shí)現(xiàn)自定義的Web服務(wù)器(C#)

代碼片段和文件信息
using?System;
using?System.Net;
using?System.Net.Sockets;
using?System.Text;
namespace?WebServer
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????//?獲得本機(jī)的Ip地址,即127.0.0.1
????????????IPAddress?localaddress?=?IPAddress.Loopback;
????????????//?創(chuàng)建可以訪問的斷點(diǎn),49155表示端口號(hào),如果這里設(shè)置為0,表示使用一個(gè)由系統(tǒng)分配的空閑的端口號(hào)
????????????IPEndPoint?endpoint?=?new?IPEndPoint(localaddress?49155);
????????????//?創(chuàng)建Tcp?監(jiān)聽器
????????????TcpListener?tcpListener?=?new?TcpListener(endpoint);
????????????//?啟動(dòng)監(jiān)聽
????????????tcpListener.Start();
????????????Console.WriteLine(“Wait?an?connect?Request...“);
????????????while?(true)
????????????{
????????????????//?等待客戶連接
????????????????TcpClient?client?=?tcpListener.AcceptTcpClient();
????????????????if?(client.Connected?==?true)
????????????????{
????????????????????//?輸出已經(jīng)建立連接
????????????????????Console.WriteLine(“Created?connection“);
????????????????}
????????????????//?獲得一個(gè)網(wǎng)絡(luò)流對(duì)象
????????????????//?該網(wǎng)絡(luò)流對(duì)象封裝了Socket的輸入和輸出操作
????????????????//?此時(shí)通過對(duì)網(wǎng)絡(luò)流對(duì)象進(jìn)行寫入來返回響應(yīng)消息
????????????????//?通過對(duì)網(wǎng)絡(luò)流對(duì)象進(jìn)行讀取來獲得請(qǐng)求消息
????????????????NetworkStream?netstream?=?client.GetStream();
????????????????//?把客戶端的請(qǐng)求數(shù)據(jù)讀入保存到一個(gè)數(shù)組中
????????????????byte[]?buffer?=?new?byte[2048];
????????????????int?receivelength?=?netstream.Read(buffer?0?2048);
????????????????string?requeststring?=?Encoding.UTF8.GetString(buffer?0?receivelength);
????????????????//?在服務(wù)器端輸出請(qǐng)求的消息
????????????????Console.WriteLine(requeststring);
????????????????//?服務(wù)器端做出相應(yīng)內(nèi)容
????????????????//?響應(yīng)的狀態(tài)行
????????????????string?statusLine?=?“HTTP/1.1?200?OK\r\n“;
????????????????byte[]?responseStatusLineBytes?=?Encoding.UTF8.GetBytes(statusLine);
????????????????string?responseBody?=?“tle>Default?Page tle>yle=‘font:bold;font-size:24pt‘>Welcome?you
“;
????????????????string?responseHeader?=
????????????????????string.Format(
????????????????????????“Content-Type:?text/html;?charset=UTf-8\r\nContent-Length:?{0}\r\n“?responseBody.Length);
????????????????byte[]?responseHeaderBytes?=?Encoding.UTF8.GetBytes(responseHeader);
????????????????byte[]?responseBodyBytes?=?Encoding.UTF8.GetBytes(responseBody);
????????????????//?寫入狀態(tài)行信息
????????????????netstream.Write(responseStatusLineBytes?0?responseStatusLineBytes.Length);
????????????????//?寫入回應(yīng)的頭部
????????????????netstream.Write(responseHeaderBytes?0?responseHeaderBytes.Length);
????????????????//?寫入回應(yīng)頭部和內(nèi)容之間的空行
????????????????netstream.Write(new?byte[]?{?13?10?}?0?2);
????????????????//?寫入回應(yīng)的內(nèi)容
????????????????netstream.Write(responseBodyBytes?0?responseBodyBytes.Length);
????????????????//?關(guān)閉與客戶端的連接
????????????????client.Close();
????????????????Console.ReadKey();
????????????????break;
????????????}
????????????//?關(guān)閉服務(wù)器
????????????tcpListener.Stop();
????????}
????}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????26768??2014-06-06?09:15??desc
?????文件????????1670??2014-06-06?09:15??desc
?????文件???????????0??2014-06-06?09:15??desc
?????文件???????????0??2014-06-06?09:15??desc
?????文件???????10457??2014-06-06?09:15??desc
?????文件????????1727??2014-06-06?09:15??desc
?????文件???????71647??2014-06-06?09:15??desc
?????文件????????3369??2014-06-06?09:15??desc
?????文件???????17619??2014-06-06?09:15??desc
?????文件???????37195??2014-06-06?09:15??desc
?????文件???????22297??2014-06-06?09:15??desc
?????文件???????14808??2014-06-06?09:15??license.rtf
?????文件?????????869??2014-06-06?09:15??C#\WebServer.sln
?????文件???????12800??2014-06-06?09:15??C#\WebServer.suo
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\bin\
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\bin\Debug\
?????文件????????6144??2014-06-06?09:15??C#\WebServer\bin\Debug\WebServer.exe
?????文件???????13824??2014-06-06?09:15??C#\WebServer\bin\Debug\WebServer.pdb
?????文件???????11600??2014-06-06?09:15??C#\WebServer\bin\Debug\WebServer.vshost.exe
?????文件?????????490??2014-06-06?09:15??C#\WebServer\bin\Debug\WebServer.vshost.exe.manifest
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\obj\
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\obj\x86\
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\
?????文件????????5397??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\TempPE\
?????文件?????????340??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\WebServer.csproj.FileListAbsolute.txt
?????文件????????6144??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\WebServer.exe
?????文件???????13824??2014-06-06?09:15??C#\WebServer\obj\x86\Debug\WebServer.pdb
?????文件????????3376??2014-06-06?09:15??C#\WebServer\Program.cs
?????目錄???????????0??2014-06-06?09:15??C#\WebServer\Properties\
............此處省略2個(gè)文件信息
評(píng)論
共有 條評(píng)論