动手实现自己的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\r\n");
54 pw.print("Content-type:text/html; charset=utf-8\r\n");
55 pw.print("\r\n");
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 }
如果端口被占用了,windows系统可以cmd输入"netstat -ano|find "80" 找到相关进程的id,然后 "taskkill /f /pid 进程id "进行查杀
动手实现自己的http服务器【精简版】的更多相关文章
- Linux上oracle精简版客户端快速部署
RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...
- VMware10.06精简版安装后台运行
VMware10.06精简版安装时会出现一个安装功能选择菜单,里面有一条后台运行必选功能,一般人会跳过条.当你打算在服务器上用vmware时,一定要安装后台运行服务,否则你无法换出正在运行的后台虚拟机 ...
- HTML5技术实现Web图形图像处理——WebPhotoshop精简版
WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包 ...
- 安装CentOS7精简版后的配置工作
CentOS7完整版有7.7G,太大了下载起来比较费劲,还是下载了精简版,但是精简版安装以后很多命令都没有,还要动手配yum源,按需安装 国内的yum源比较好的就是163的了,配置方法: 1,进入yu ...
- VMware Workstation 10.0 简中绿色精简版
VMware Workstation是强大的虚拟机软件,能在一台机器上同时运行二个或更多Windows.DOS.LINUX系统,并进行开发.测试.部署新的应用程序.VMware10.0 延续VMwar ...
- DeepinXP Lite 6.2 精简版220M 安装IIS
本作品由Man_华创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.基于http://www.cnblogs.com/manhua/上的作品创作. 用虚拟机装了DEEP ...
- WIN10X64LTSC2019中度精简版by双心
WIN10X64LTSC2019中度精简版by双心https://www.cnblogs.com/liuzhaoyzz/p/11295032.html 一.前言:关于LTSC中度精简版的说明 一个MM ...
- ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址
原版ArcGIS for Desktop的ISO文件一般都在4.5G以上,一般人用不上里面很多工具,下载回来又浪费时间,现推出ArcGIS10.2.1精简版(里面只包含主程序.Data Interop ...
- TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍
TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...
- Log4j快速使用精简版
Log4j快速使用精简版 1.导入log4j-1.2.17.jar包 2.在src根目录下创建log4j.properties文件 log4j.rootLogger=INFO, CONSOLE, FI ...
随机推荐
- Zabbix“专家坐诊”第187期问答汇总
问题一 Q:zabbix server 5.0有办法不通过脚本监控SSL证书到期时间么? A:目前还是流行通过脚本方式去获取. Q:如果是通配符证书应该怎么监控? A:通过解析域名获取对应的过期时间的 ...
- 【python】使用百度api进行音频文件转写
[python]使用百度api进行音频文件转写 脚本目标: 智能云的音频文件转写文档只给了个demo,每次只能传1分钟以内的音频啥的,不好直接用,简单打包一下,做到把音频放文件夹,直接出转写结果就行了 ...
- 光感红外接近传感器AP3426调试总结
一 概念 AP3426是一个高度集成了红外,光感和接近角的传感器.该传感器凭借着高灵敏度广泛应用在可穿戴领域.笔者在一个产品上用了这个传感器.花了一些时间来调试和熟悉这个传感器,这里就做一个总结吧. ...
- day11-2-内置Tomcat的配置和切换
SpringBoot内置Tomcat的配置和切换 1.基本介绍 SpringBoot支持的webServer:Tomcat,Jetty,Undertow 因为在spring-boot-starter- ...
- MyEclipse设置自动提醒(补全)功能
1. 打开MyEclipse,然后"window"→"Preferences" 2. 选择"java",展开,"Editor&qu ...
- CAD和实时渲染之间的差距
建筑师如何将他们喜爱的CAD工具与虚幻引擎和Twinmotion 等快速实时渲染工具结合使用 每个建筑师都有自己喜欢的设计工具.从Revit的粉丝到阿奇卡德的狂热用户,AEC专业人员通常首选CAD和B ...
- 三维模型3DTile格式轻量化压缩集群处理方法分析
三维模型3DTile格式轻量化压缩集群处理方法分析 在地理信息系统中,由于三维模型的数据密度和文件体积较大,因此需要进行轻量化和压缩处理.这里我们将对使用集群处理方法来实现3D Tiles数据的轻量化 ...
- koa2整合mysql
引入mysql包 npm install mysql 封装mysql 创建mysql.js文件放在utils(工具包)中 使用pool连接池 mysql.js //封装mysql const mysq ...
- mybatis xml 文件 sql include 的用法
mybatis xml 文件中对于重复出现的sql 片段可以使用标签提取出来,在使用的地方使用标签引用即可具体用法如下: <sql id="Base_Column_List" ...
- KingbaseESV8R6用户登录失败自动锁定后解锁遇到权限问题
测试用户登录失败自动锁定 创建用户tee并授权. TEST=# create user tee; CREATE ROLE TEST=# alter user tee with createdb; AL ...