欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

服务端与客户端的简单代码实现

程序员文章站 2022-03-10 19:25:02
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 请求 = 请求行 + 请求头们 + 可选的请求体...

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

相关标签: tcpip socket