简单实现B/S服务器
public static void main(String[] args) throws IOException {// 创建一个服务器ServerSocket并和系统要指定的端口号ServerSocket server = new ServerSocket(5588);/*浏览器解析服务器回写的html页面,页面中如果有图片,那么浏览器就会单独的开启一个线程,读取服务器的图片,所以就得让服务器一直处于监听状态,客户端请求一次,服务器就回写一次*/while (true) {// 使用accept方法获取到请求的客户端对象(浏览器)Socket socket = server.accept();// 开启线程new Thread(new Runnable() {@Overridepublic void run() {BufferedReader br = null;FileInputStream fis = null;try {// 使用socket中的方法getInputStream,获取网络字节输入流对象InputStreamInputStream is = socket.getInputStream();// 把is网络字节输入流对象转换为字符缓冲输入流br = new BufferedReader(new InputStreamReader(is));// 把客户端请求信息行第一行数据读取出来 GET /baidu/baidu.html HTTP/1.1String s = br.readLine();// 把读取的数据进行切割,只要中间的部分 /baidu/baidu.htmlString[] arr = s.split(" ");// 把路径前边的/去掉,进行截取 baidu/baidu.htmlString fileName = arr[1].substring(1);System.out.println("文件名称" + fileName);// 创建本地字节输入流,构造方法中绑定要读取的html路径fis = new FileInputStream(fileName);// 使用socket中的方法getOutputStream,获取网络字节输入流对象OutputStreamOutputStream os = socket.getOutputStream();// 写入HTTP协议响应头,固定写法os.write("http/1.1 200 OK\r\n".getBytes());os.write("Content-Type:text/html\r\n".getBytes());// 必须写入空行,负责浏览器不解析os.write("\r\n".getBytes());// 一读一写复制文件,把服务器读取的html文件回写到客户端int len = 0;byte[] b = new byte[1024];while ((len = fis.read(b)) != -1) {os.write(b, 0, len);}} catch (IOException e) {e.printStackTrace();} finally {// 释放资源try {socket.close();if (br != null) {br.close();}if (fis != null) {fis.close();}} catch (IOException | NullPointerException e) {e.printStackTrace();}}}}).start();}}
简单实现B/S服务器相关推荐
- python简易版实例_Python3之简单搭建自带服务器的实例讲解
WEB开发,我们先从搭建一个简单的服务器开始,Python自带服务模块,且python3相比于python2有很大不同, 在Python2.6版本里,/usr/bin/lib/python2.6/ 目 ...
- 一个简单的Java web服务器实现
前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...
- 启动服务错误5拒绝访问_【Go API 开发实战 5】基础1:启动一个最简单的 RESTful API 服务器...
启动一个最简单的 RESTful API 服务器 本节核心内容 启动一个最简单的 RESTful API 服务器 设置 HTTP Header API 服务器健康检查和状态查询 编译并测试 API 本 ...
- 【Go API 开发实战 5】基础1:启动一个最简单的 RESTful API 服务器
本节核心内容 启动一个最简单的 RESTful API 服务器 设置 HTTP Header API 服务器健康检查和状态查询 编译并测试 API 本小节源码下载路径:demo01 可先下载源码到本地 ...
- 一个简单的python日志服务器
一个简单的python日志服务器,主要目的是搜集各python logging记录的日志,将其简单汇总.源码如下: # -*- coding: utf-8 -*- ''' Created on 201 ...
- Java的echo_简单的Java echo服务器问题
我正在尝试编写我的第一个套接字服务器,所以我决定从一个非常简单的事情开始,只是为了计算流程:)我正在编写一个简单的 java echo服务器,但问题是(出于某种原因?! )我没有在客户端获得服务器响应 ...
- 简单的客户机服务器投射模拟
下面模拟了,简单的客户机服务器投射模拟的过程.客户机像服务器发送数据,服务器接受到数据后,发送回给客户机.再由客户机打印出来. 需要的函数: 网络方面 服务器 socket(AF_INET,SOCK_ ...
- 《UNP》随笔——“实现一个简单的回射服务器”存在的不足(信号处理)
尽管实现了一个简单的回射服务器,但依旧存在一些不足: 服务端的子进程结束的时候,由于父进程未对子进程发送的SIGCHLD信号进行处理,会导致子进程进入僵死状态.这一点该如何解决? 客户端A向服务端B发 ...
- 自己动手搭建一个简单的静态资源服务器
文章目录 自己动手搭建一个简单的静态资源服务器 介绍 一.设计到的模块 备注: 二.代码结构 三.具体代码 自己动手搭建一个简单的静态资源服务器 介绍 通过此文章的学习,可以自己使用NodeJs搭 ...
- SRS 简单高效的实时视频服务器
一. 简介 SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT. 你可以用它实现视频推流,并且支持http回调事件(HTTPCallback),还可以保 ...
最新文章
- Linux下对MySQL数据库的常见操作【创建】【删除】【导入数据库】
- 远程打包linux成镜像,ubuntu18.04 现有系统打包成镜像
- 构建javaweb项目
- Spring Cloud依赖
- 感觉很好的IT自学参考教程收集
- 线程同步与异步套接字编程
- Windows10最新MySQL8.0.23安装教程(超级详细)
- 图匠数据等提出高精度零售货架姿态估计算法GSPN
- OpenCV3.4.2+VS2015开发环境搭建
- 故事 - 100℃的人生
- Linux安装Nginx1.7.4、php5.5.15和配置
- 200 元人民币面世!
- [论文] Feature Squeezing:Detecting Adversarial Examples in Deep Neural Networks
- 2142. The Number of Passengers in Each Bus I
- setenv setfenv
- YOLOv3 cfg文件详解
- Oracle执行语句跟踪(1)——使用sql trace实现语句追踪
- 数据库作业:相关概念的解释和理解
- pytorch中的reshape()、view()、nn.flatten()和flatten()
- 王一博VS“虚拟人”?乐华“永不塌房”的偶像计划可行吗?