密码保护:阿里巴巴和四十大盗

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:Goodnight Moon

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

最简单的web服务器 三种实现

using System;
using System.Net;
using System.Text;

namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{

#region 第一个服务器 使用Socket
//IPAddress iPAddress = IPAddress.Loopback;
//IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 55555);
//Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//socket.Bind(iPEndPoint);
//socket.Listen(10);
//Console.WriteLine(“开始监听:55555”);
//while (true)
//{
// Socket client = socket.Accept();
// Console.WriteLine(client.RemoteEndPoint);
// Byte[] buffer = new byte[2048];
// int lenghth = client.Receive(buffer, SocketFlags.None);
// System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
// string requeststring = utf8.GetString(buffer, 0, lenghth);
// Console.WriteLine(requeststring);
// string statusline = “HTTP/1.1 200 OK\r\n”;
// byte[] statuslinebytes = utf8.GetBytes(statusline);
// string responsebody = “<html><head><title>From my own site</title></head><body><h1>hello world</h1></body></html>”;
// byte[] responsebodybytes = utf8.GetBytes(responsebody);
// string responseheader = string.Format(
// “Content-Type:text/html;” +
// “charset=utf-8\r\ncontent-lenghth:{0}\r\n”,
// responsebody.Length
// );
// byte[] responseheaderbyte = utf8.GetBytes(responseheader);
// client.Send(statuslinebytes);
// client.Send(responseheaderbyte);
// client.Send(new byte[] { 13, 10 });
// client.Send(responsebodybytes);
// client.Close();
// if (Console.KeyAvailable)
// {
// break;
// }
//}
//socket.Close();
#endregion

#region 第二个服务器 使用TcpListener
//IPAddress iPAddress = IPAddress.Loopback;
//IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 55555);
//TcpListener server = new TcpListener(iPEndPoint);
//server.Start();
//Console.WriteLine(“开始监听:55555”);
//while (true)
//{
// TcpClient client = server.AcceptTcpClient();

// Console.WriteLine(client.Connected);
// NetworkStream networkStream = client.GetStream();
// System.Text.Encoding utf8 = System.Text.Encoding.UTF8;

// Byte[] request = new byte[2048];
// int lenghth = networkStream.Read(request, 0, 2048);
// string requeststring = utf8.GetString(request, 0, lenghth);
// Console.WriteLine(requeststring);

// string statusline = “HTTP/1.1 200 OK\r\n”;
// byte[] statuslinebytes = utf8.GetBytes(statusline);
// string responsebody = “<html><head><title>From my own site</title></head><body><h1>hello world</h1></body></html>”;
// byte[] responsebodybytes = utf8.GetBytes(responsebody);
// string responseheader = string.Format(
// “Content-Type:text/html;” +
// “charset=utf-8\r\ncontent-lenghth:{0}\r\n”,
// responsebody.Length
// );
// byte[] responseheaderbyte = utf8.GetBytes(responseheader);
// networkStream.Write(statuslinebytes,0,statuslinebytes.Length);
// networkStream.Write(responseheaderbyte,0,responseheaderbyte.Length);
// networkStream.Write(new byte[] { 13, 10 },0,2);
// networkStream.Write(responsebodybytes,0,responsebodybytes.Length);
// client.Close();
// if (Console.KeyAvailable)
// {
// break;
// }
//}
//server.Stop();
#endregion

#region 第三个服务器 用HttpListener
if (!HttpListener.IsSupported)
{
throw new System.InvalidOperationException(“系统要求 xp sp2 已上 server2003已上!”);
}
string[] prefixes = new string[] { “http://localhost:55555/” };
HttpListener listener = new HttpListener();
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
Console.WriteLine(“开始监听:55555”);
while (true)
{
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
Console.WriteLine(“{0} {1} HTTP/1.1”, request.HttpMethod, request.RawUrl);
Console.WriteLine(“Accept:{0}”, string.Join(“,”, request.AcceptTypes));
Console.WriteLine(“Accept-Language:{0}”, string.Join(“,”, request.UserLanguages));
Console.WriteLine(“useragent:{0}”, request.UserAgent);
Console.WriteLine(“accept-encoding:{0}”, request.Headers[“Accept-EnCoding”]);
Console.WriteLine(“Connection:{0}”, request.KeepAlive ? “Keep-Alive” : “close”);
Console.WriteLine(“host:{0}”, request.UserHostName);
Console.WriteLine(“Pragma:{0}”, request.Headers[“Pragma”]);
HttpListenerResponse response = context.Response;
string responsestring
= @”<html>
<head><title>from httplistener server</title></head>
<body><h1>hello world</h1></body>
</html>”;
response.ContentLength64 = Encoding.UTF8.GetByteCount(responsestring);
response.ContentType = “text/html;charset=utf-8”;
System.IO.Stream output = response.OutputStream;
System.IO.StreamWriter writer = new System.IO.StreamWriter(output);
writer.Write(responsestring);
writer.Close();
if (Console.KeyAvailable)
{
break;
}
}
listener.Stop();
#endregion
}
}
}

发表在 工作 | 留下评论

密码保护:An Elephant and Piggie 小象与小猪

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:鳄鱼爱上长颈鹿

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:宫西达也的柔情霸王龙

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:好好照顾我的花

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:彩绘英文绘本350 小于10M部分(173本)

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类 | 要查看留言请输入您的密码。

密码保护:巴巴爸爸音频

这是一篇受密码保护的文章,您需要提供访问密码:

发表在 未分类, 逛吃记录 | 要查看留言请输入您的密码。