先看下效果图:
我通过 127.0.0.1:10010
访问我启用服务的效果图。
后台接收到的前台请求如下:
GET / HTTP/1.1
Host: 127.0.0.1:10010
Connection: keep-alive
sec-ch-ua: " Not;A Brand";v=“99”, “Google Chrome”;v=“91”, “Chromium”;v=“91”
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
下面是源码:
其中响应主体的
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
可以解决中文内容下的乱码问题。
<style>body{font-family:\"黑体\"}</style>
可以设置文本的字体样式。
package com.test.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class SocketTest { public static void main(String[] args) throws IOException { /* 作用:接收浏览器的请求并响应 作者:小蓝枣 */ // 创建服务,端口设置为10010 ServerSocket server = new ServerSocket(10010); while(true) { // 阻塞式连接,当接收请求前保持阻塞 Socket socket_client = server.accept(); // 获取输入流 InputStream in_put = socket_client.getInputStream(); // 创建一个缓冲数组 byte data[] = new byte[4096]; // 将数据读取到缓冲数组中,会返回数据的长度 in_put.read(data); // 制作响应报文 StringBuffer response = new StringBuffer(); // 打印请求的数据 String date_request = new String(data); System.out.println(date_request); // 响应头部 String response_head = "HTTP/1.1 200 OK\r\n" + "Content-type:text/html\r\n\r\n"; // 响应主体 String response_body = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">" + // 解决乱码问题 "<style>body{font-family:\"黑体\"}</style>" + "欢迎来到小蓝枣的博客<br>" + "Welcome to xiaolanzao's blog!"; response.append(response_head + response_body); // 获取输出流 OutputStream out_put = socket_client.getOutputStream(); // 将响应数据传给输出流 out_put.write(response.toString().getBytes()); // 关闭创建的对象 out_put.close(); in_put.close(); socket_client.close(); } } }
喜欢的点个赞❤吧!