您的位置:首页 > 运维架构 > Tomcat

通过Socket实现简单web服务器功能(接收页面请求信息)不使用Tomcat!

2017-09-01 16:15 946 查看
通过Socket来实现对http请求信息的获取。本人小白,有错误希望大家及时指出。

本项目的运行方式:运行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();
}
}


运行后会在控制台写出协议内容,我们可以再根据自己所需要的部分,进行截取。



这里我让页面重写了协议内容,当然也可以返回其他数值,这里是模拟数据从服务端的响应。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐