通过Socket实现简单web服务器功能(接收页面请求信息)不使用Tomcat!
2017-09-01 16:15
946 查看
通过Socket来实现对http请求信息的获取。本人小白,有错误希望大家及时指出。
本项目的运行方式:运行Luancher,然后在浏览器通过网址访问:http:/localhost:7777.这里的端口号是和Luancher类中的参数一直,是一直监视的那个端口。url中也可以添加参数,以?连接的格式,代码运行过,可以直接使用。
运行后会在控制台写出协议内容,我们可以再根据自己所需要的部分,进行截取。
这里我让页面重写了协议内容,当然也可以返回其他数值,这里是模拟数据从服务端的响应。
本项目的运行方式:运行Luancher,然后在浏览器通过网址访问:http:/localhost:7777.这里的端口号是和Luancher类中的参数一直,是一直监视的那个端口。url中也可以添加参数,以?连接的格式,代码运行过,可以直接使用。
package com.lei.second; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class HttpServer implements Runnable { //服务器监听 private ServerSocket serverSocket; //标志位,标识当前服务器是否正在运行 private boolean isRunning; public HttpServer(int port) { try { serverSocket = new ServerSocket(port); } catch (IOException e) { e.printStackTrace(); } } public void stop() { this.isRunning = false; } public void start() { this.isRunning = true; new Thread(this).start(); } @Override public void run() { while (isRunning) { //一直监听,知道收到停止的命令 Socket socket = null; try { socket = serverSocket.accept(); //如果没有请求,会在这里等待,有客户端请求的时候才会继续往下执行 BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(socket.getInputStream())); //获取输入流 StringBuilder stringBuilder = new StringBuilder(); String line = null; while ((line = bufferedReader.readLine())!=null &&!line.equals("")) { stringBuilder.append(line).append("/n"); } String record = stringBuilder.toString(); System.out.println("--------------------------------"); System.out.println(record); PrintWriter printWriter = new PrintWriter( socket.getOutputStream(),true); //自动刷新缓存 doEcho(printWriter, record); //将日志输出到浏览器 printWriter.close(); bufferedReader.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } /* * 讲收到的信回写给客户端 */ private void doEcho(PrintWriter printWriter, String record) { printWriter.write("已接受数据"); } }
package com.lei.second; public class Luancher { public static void main(String[] args) { HttpServer httpServer = new HttpServer(7777); httpServer.start(); } }
运行后会在控制台写出协议内容,我们可以再根据自己所需要的部分,进行截取。
这里我让页面重写了协议内容,当然也可以返回其他数值,这里是模拟数据从服务端的响应。
相关文章推荐
- ASP.NET jQuery 食谱11 (通过使用jQuery validation插件简单实现用户登录页面验证功能)
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- 通过一个Socket例子理解Http协议(实战Java Web服务器--使用HTTP协议和JAVA类实现)
- C#中使用Socket实现简单Web服务器
- ASP.NET jQuery 食谱12 (通过使用jQuery validation插件简单实现用户注册页面验证功能)
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
- C#中使用Socket实现简单Web服务器
- ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
- C#中使用Socket实现简单Web服务器
- 简单socket服务(三)实现多客户端向服务器发送数据并保证服务器接收到数据
- c++服务器通过socket接收安卓客户端发来信息时乱码的处理
- 【简单Web服务器搭建】基于Socket实现的最简单的Web服务器【ASP.NET原理分析】
- 使用FLEX实现简单WEB在线拍照功能
- 使用HttpListener实现简单Web服务器
- loadrunner使用socket协议来实现客户端对服务器产生压力实例。(通过发送心跳包,达到连接多个客户端的目的)
- 两台WEB服务器通过DNS轮询功能实现负载均衡
- 【简单Web服务器搭建】基于Socket实现的最简单的Web服务器【ASP.NET原理分析】
- (转)使用HttpListener实现简单Web服务器
- Android版Web服务器实现(二)使用服务来监听HTTP请求