zoukankan      html  css  js  c++  java
  • 读书笔记web服务器:TcpListener

     1             // 取得本机Loopback :127.0.0.1
     2             IPAddress address = IPAddress.Loopback;
     3             // 创建访问端点,端口:8081
     4             IPEndPoint endpoint = new IPEndPoint(address,8081);
     5 
     6             // 创建Tcp监听器
     7             TcpListener tcpserver = new TcpListener(endpoint);
     8             // 启动监听
     9             tcpserver.Start();
    10             Console.WriteLine("开始监听。。。。。");
    11             while (true)
    12             {
    13                 // 等待客户连接
    14                 TcpClient tcpClient = tcpserver.AcceptTcpClient();
    15                 Console.WriteLine("已经建立连接。");
    16                 // 得到数据量
    17                 NetworkStream stream = tcpClient.GetStream();
    18 
    19                 // 采用UTF-8 编码
    20                 Encoding utf8 = Encoding.UTF8;
    21 
    22                 byte[] request = new byte[4096];
    23 
    24                 int length = stream.Read(request, 0, 4096);
    25 
    26                 string requesting = utf8.GetString(request);
    27                 Console.WriteLine(requesting);
    28 
    29                 // 状态行
    30                 string statusline = "HTTP/1.1 200 OK\r\n";
    31                 byte[] statusBuffer = utf8.GetBytes(statusline);
    32 
    33                 // 准备发送到客户端的网页
    34                 string responsestring = "<html><head><title>标题</title></head><body><h1>内容</h1></body></html>";
    35                 byte[] responseBuffer = utf8.GetBytes(responsestring);
    36                 // 回应头
    37                 string responseHead = string.Format("Content-Type: text/html;charset=UTF-8\r\nContent-Length:{0}\r\n", responseBuffer.Length);
    38                 byte[] responseHeadBuffer = utf8.GetBytes(responseHead);
    39 
    40                 // 状态行
    41                 stream.Write(statusBuffer, 0, statusBuffer.Length);
    42                 // 回应头
    43                 stream.Write(responseHeadBuffer, 0, responseHeadBuffer.Length);
    44                 // 空行 \r\n
    45                 stream.Write(new byte[]{13,10},0,2);
    46                 // 内容
    47                 stream.Write(responseBuffer, 0, responseBuffer.Length);
    48                 tcpClient.Close();
    49                 if (Console.KeyAvailable)
    50                 {
    51                     break;
    52                 }
    53             }
    54             // 停止监听
    55             tcpserver.Stop();
  • 相关阅读:
    U10783 名字被和谐了
    P1151 子数整数
    P2756 飞行员配对方案问题
    P3227 [HNOI2013]切糕
    BZOJ 2127: happiness(最小割解决集合划分)
    linux脚本初体验
    130902 周赛
    Citrix 服务器虚拟化之三十二 XenConvert
    数据字典统一管理,动态下拉框
    [置顶] oracle 数据库表中转换成java代码
  • 原文地址:https://www.cnblogs.com/tangruixin/p/2494178.html
Copyright © 2011-2022 走看看