zoukankan      html  css  js  c++  java
  • 动手实现自己的http服务器【精简版】

     1 package v2;
     2 
     3 import java.io.IOException;
     4 import java.io.OutputStream;
     5 import java.io.PrintStream;
     6 import java.io.PrintWriter;
     7 import java.net.ServerSocket;
     8 import java.net.Socket;
     9 import java.util.List;
    10 import java.util.Scanner;
    11 
    12 public class Test
    13 {
    14   public static void main(String[] args)
    15   {
    16     try
    17     {
    18       Socket s = null;
    19       ServerSocket ss = new ServerSocket(80);
    20       while ((s = ss.accept()) != null)
    21       {
    22         Scanner input = new Scanner(s.getInputStream(), "utf-8");
    23         int c = 0;
    24         String tmp = null;
    25         while (input.hasNextLine())
    26         {
    27           tmp = input.nextLine();
    28           if (tmp.trim().length() == 0) {
    29             break;
    30           }
    31           System.out.println(c + "·····································" + tmp);
    32           c++;
    33         }
    34         System.out.println("开始响应·····························");
    35         responseMsg(s, "Hello,world");
    36         input.close();
    37         s.close();
    38       }
    39     }
    40     catch (IOException e)
    41     {
    42       e.printStackTrace();
    43     }
    44   }
    45   
    46   private static void responseMsg(Socket s, String msg)
    47   {
    48     try
    49     {
    50       OutputStream out = s.getOutputStream();
    51       PrintWriter pw = new PrintWriter(out);
    52       
    53       pw.print("HTTP/1.0 500 OK
    ");
    54       pw.print("Content-type:text/html; charset=utf-8
    ");
    55       pw.print("
    ");
    56       
    57       pw.println(msg);
    58       pw.flush();
    59       pw.close();
    60     }
    61     catch (IOException e)
    62     {
    63       e.printStackTrace();
    64     }
    65   }
    66   
    67   public static void showLines(List<String> lines)
    68   {
    69     for (String line : lines) {
    70       System.out.println(line);
    71     }
    72   }
    73 }
    View Code

    如果端口被占用了,windows系统可以cmd输入"netstat -ano|find "80"     找到相关进程的id,然后  "taskkill  /f /pid 进程id  "进行查杀

  • 相关阅读:
    快速排序算法
    excel取值
    5.管理控制文件和日志文件
    贝叶斯决策与参数估计小结
    Kernel Methods (5) Kernel PCA
    Kernel Methods (4) Kernel SVM
    Kernel Methods (3) Kernel Linear Regression
    Kernel Methods (2) Kernel function
    Kernel Methods (1) 从简单的例子开始
    PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?
  • 原文地址:https://www.cnblogs.com/swtjavaspace/p/8474335.html
Copyright © 2011-2022 走看看