JAVA如何搭建bs模式,Java入门--socket创建BSServer

Java入门--Socket创建BSServe

首先在项目的根路径下, 创建一个 demo.html (内容随便写写)

在Java主程序中

package io.github.wangermaizi.day10;

import java.io.*;

import java.net.ServerSocket;

import java.net.Socket;

// BS-TCP

public class BSServe {

public static void main(String[] args) throws IOException {

ServerSocket serverSocket = new ServerSocket(8848);

Socket socketClient = serverSocket.accept();

InputStream ips = socketClient.getInputStream();

/*

// 能读取关于本次请求的一些浏览器信息

int len = 0;

byte[] bytes = new byte[1024];

while ((len = ips.read(bytes)) != -1) {

System.out.println(new String(bytes, 0, len));

}

*/

// GET /day06/index.html

// 根据上述页面需要给浏览器相应内容

// 把 ips 网络字节流对象, 转为字符缓冲流

BufferedReader br = new BufferedReader(new InputStreamReader(ips));

// 通过缓冲流读取第一行

String line = br.readLine();

// 把读取信息进行切割, 只要中间的部分

String[] arr = line.split(" ");

// 把前面的 /去掉就是 html位于项目的路径

String htmlPath = arr[1].substring(1);

// 根据路径读取本地文件

FileInputStream fis = new FileInputStream(htmlPath);

// 写入浏览器 HTTP的相应头, 固定写法

OutputStream ops = socketClient.getOutputStream();

ops.write("HTTP/1.1 200 OK\r\n".getBytes());

ops.write("Content-Type:text/html\r\n".getBytes());

// 必须加入空行否则文件不解析

ops.write("\r\n".getBytes());

// 通过 socket写入流, 响应出去 (文件资源的回写)

int len = 0;

byte[] bytes = new byte[1024];

while ((len = fis.read(bytes)) != -1) {

ops.write(bytes, 0, len);

}

socketClient.shutdownInput();

fis.close();

ops.close();

socketClient.close();

serverSocket.close();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值