动手实现自己的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 ...
随机推荐
- sentienl
整合springboot Spring Cloud Alibaba Sentinel 下载 导入依赖 <dependency> <groupId>com.alibaba.clo ...
- 3DCAT为华东师大设计学院打造元宇宙数字虚拟学院
6月11日,华东师范大学设计学院在chi K11美术馆举办了一场别开生面的 2023 年本科毕业设计暨项目实践教学现场演示展.其中,元宇宙数字虚拟学院(一期)的现场发布会引起了现场震撼,吸引了众多观众 ...
- OpenLayers绘制热力图 代码记录
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 做地图开发,往往需要掌握专题地图制作的技能.今天用OpenLayers6来做一个热力图的效果. 页面效果: 代码部分: <!DOCT ...
- C++ Concurrency in Action 读书笔记三:并发操作的同步
Chapter 4 并发操作的同步·Synchronizing concurrent operations
- 《Go程序设计语言》学习笔记之defer
<Go程序设计语言>学习笔记之defer 一. 环境 Centos8.5, go1.17.5 linux/amd64 二. 概念 语法上,一个 defer 语句就是一个普通的函数或方法调用 ...
- C# 人脸比对服务,自带模型,离线部署
软件说明 基于以下开源项目,做了再次封装 GitHub - ViewFaceCore/ViewFaceCore: C# 超简单的离线人脸识别库.( 基于 SeetaFace6 ) 可以一键开启服务: ...
- JDK8 ::用法(双冒号)
JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. List<String> lt = Arrays.asList(&q ...
- KingbaseES运维案例之---数据库启动“could not open shared memory segment”
案例说明: 在kylin系统下数据库启动出现"could not open shared memory segment xxxx"的故障,故障如下所示: 适用版本: Kingb ...
- Python爬虫爬取全球疫情数据并存储到mysql数据库
思路:使用Python爬虫对腾讯疫情网站世界疫情数据进行爬取,封装成一个函数返回一个 字典数据格式的对象,写另一个方法调用该函数接收返回值,和数据库取得连接后把 数据存储到mysql数据库 ...
- 2 CSS基本选择器
2 基本选择器 id选择器 id选择器使用"#"进行标识,后面紧跟id名,其基本语法格式为: #id名{属性1:属性值1;属性2:属性值2;属性3:属性值3;} 该语法中,id名即 ...