服务端与客户端的简单代码实现
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class 一个简单的HTTP客户端 {
public static void main(String[] args) throws IOException {
// HTTP 请求 = 请求行 + 请求头们 + 可选的请求体
// 请求行 = 方法 + URL + 版本
// GET / HTTP/1.0\r\n
// \r\n
String request = “GET / HTTP/1.0\r\n”
+ “\r\n”;
// 想办法通过 OS 提供的服务(经由传输层,将数据发送给 127.0.0.1 主机上的 8080 端口代表的进程)
Socket socket = new Socket("182.254.132.183", 8080);
InputStream is = socket.getInputStream(); // 获取对方发送过来的数据
OutputStream os = socket.getOutputStream(); // 发送给对方的数据
// 发送
byte[] message = request.getBytes("utf-8");
os.write(message);
os.flush();
// 接受
Scanner scanner = new Scanner(is, "UTF-8");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
// 关闭
socket.close();
}
}
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class HTTPServer {
public static void main(String[] args) throws IOException {
String body = “”
+ “”
+ “”
+ “
+ “”
+ “”
+ “”
+ “
狗狗
”+ “
福特
”+ “”
+ “”;
String response = “HTTP/1.0 200 OK\r\n”
+ “Content-Type: text/html; charset=utf-8\r\n”
+ “Content-Length: 146\r\n”
+ “\r\n”
+ body;
ServerSocket serverSocket = new ServerSocket(8888);
// 可以不断的进行 请求-响应周期
while (true) {
// 开始一次通信 = 读取请求 + 发送响应
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
// 读取请求
Scanner scanner = new Scanner(is, "UTF-8");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
if (line.isEmpty()) {
// 读取到空行,代表请求结束
break;
}
}
// 发送响应
byte[] bytes = response.getBytes("UTF-8");
os.write(bytes);
os.flush();
socket.close();
// 结束一次通信
}
}
}
本文地址:https://blog.csdn.net/m0_50105465/article/details/112255214
上一篇: java下载文件或文件夹