c#实现简单的web服务器
来源:互联网 发布:腐烂国度优化 编辑:程序博客网 时间:2024/05/18 01:03
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace WebServer{ /// <summary> /// 实现一个简单的web服务器 /// 该服务器向请求的浏览器返回一个静态的HTML页面 /// </summary> class Program { static void Main() { // 获得本机的Ip地址,即127.0.0.1 IPAddress localaddress = IPAddress.Loopback; // 创建可以访问的端点,49155表示端口号,如果这里设置为0,表示使用一个由系统分配的空闲的端口号 IPEndPoint endpoint = new IPEndPoint(localaddress, 9999); //创建Socket对象,使用IPv4地址,数据通信类型为数据流,传输控制协议TCP协议. Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //将Socket绑定到端口和ip上 socket.Bind(endpoint); // 设置连接队列的长度 socket.Listen(10); while (true) { Console.WriteLine("Wait an connect Request..."); // 开始监听,这个方法会堵塞线程的执行,直到接受到一个客户端的连接请求 Socket clientsocket = socket.Accept(); // 输出客户端的地址 Console.WriteLine("Client Address is {0}", clientsocket.RemoteEndPoint); // 把客户端的请求数据读入保存到一个数组中 byte[] buffer = new byte[2048]; int receivelength = clientsocket.Receive(buffer, 2048, SocketFlags.None); string requeststring = Encoding.UTF8.GetString(buffer, 0, receivelength); // 在服务器端输出请求的消息 Console.WriteLine(requeststring); // 响应的状态行 string statusLine = "HTTP/1.1 200 OK\r\n"; byte[] responseStatusLineBytes = Encoding.UTF8.GetBytes(statusLine); string responseBody = "<html><head><title>Default Page</title></head><body>Welcome you</body></html>"; 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); // 向客户端发送状态行 clientsocket.Send(responseStatusLineBytes); // 向客户端发送回应头信息 clientsocket.Send(responseHeaderBytes); // 发送头部和内容的空行 clientsocket.Send(new byte[] { 13, 10 }); // 想客户端发送主体部分 clientsocket.Send(responseBodyBytes); // 断开连接 clientsocket.Close(); Console.ReadKey(); break; } // 关闭服务器 socket.Close(); } }}
阅读全文
0 0
- C# | socket实现简单的web服务器
- c#实现简单的web服务器
- C#实现简单WEB服务器
- C#实现简单WEB服务器
- c#实现简单Web服务器
- 简单的web服务器实现
- 实现简单的web服务器
- 实现简单的Web服务器
- 简单的web服务器实现
- C#实现WEB服务器
- C#实现WEB服务器
- C#实现WEB服务器
- C#实现WEB服务器
- C#实现WEB服务器
- c#实现Web服务器
- C#实现WEB服务器
- C#实现WEB服务器
- C#实现WEB服务器
- vijos1428贪婪的格尔曼
- 第三个项目总结
- 勒索病毒猛于虎 网络空间安全谁来守护?
- 根据UIBezierPath与CAShapeLayer画折线
- 海康sdk的私有流软解码性能差
- c#实现简单的web服务器
- 使用HttpListener实现简单Web服务器
- Maven入门指南⑤:使用Nexus搭建Maven私服
- 1.1.java配置
- tomcat启动的时候报java.lang.UnsatisfiedLinkError: Can't load AMD 64-bit .dll on a IA 32-bit' platform
- oracle
- 909422229_Spring上下文操作工具类:SpringContextUtil
- ZOJ1005 Jug问题 运行结果有误?
- java string类型 直接定义跟new的区别