在地址栏中输入路径,如果有该文件则读取文件内容,否则报404错误

服务器端代码

package com.jdxh.web;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    
    

	/**
	 * 服务器
	 * 实现:接收来自客户端的请求,响应客户端的请求
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
    
    
		
		//1.获得连接
		ServerSocket ss = new ServerSocket(9090);
		Socket socket = ss.accept();
		System.out.println("服务器已连接!");
		
		//2.获得输入输出流
		InputStream is = socket.getInputStream();
		OutputStream os = socket.getOutputStream();
		
		//3.包装成缓冲流
		BufferedReader bf = new BufferedReader(new InputStreamReader(is));
		PrintWriter pw = new PrintWriter(os,true);
		
		//4.接收请求
		String str = bf.readLine();
		System.out.println("接收到信息"+str);
		//4.查询,发出响应
		File file = new File(str);
		if(file.exists()) {
    
    
			BufferedReader fbr  = new BufferedReader(new  FileReader(file));
			String str2 = fbr.readLine();
			while(str2!=null) {
    
    

				pw.println(str2);
				str2 = fbr.readLine();
				
			}
		}else {
    
    
			System.out.println("404!找不到该资源!");
		}
		//5.关流
		ss.close();
		socket.close();
		is.close();
		os.close();
		
	}

}

浏览器端代码

package com.jdxh.web;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Client {
    
    
	/**
	 * 客户端
	 * 实现:向服务器发送请求
	 * @param args
	 * @throws UnknownHostException
	 * @throws IOException
	 */
	public static void main(String args[]) throws UnknownHostException, IOException {
    
    
	
		//1.连接
		Socket socket  = new Socket("127.0.0.1",9090);
		System.out.println("客户端已连接"+socket);
		
		//2.获得管道输入输出流
		InputStream is = socket.getInputStream();
		OutputStream os = socket.getOutputStream();
		
		//3.包装成缓冲流
		BufferedReader bf = new BufferedReader(new InputStreamReader(is));
		PrintWriter pw = new PrintWriter(os,true);
		
		//4.输入网址
		System.out.print("请输入网址:");
		Scanner input = new Scanner(System.in);
		String str = input.nextLine();
		
		//5.发送到服务器
		pw.println(str);
		
		//6.接收内容
		String str2 = bf.readLine();
		while(str2!=null) {
    
    
			System.out.println(str2);
			str2 = bf.readLine();
		}
		//7.关流
		bf.close();
		pw.close();
		socket.close();
		is.close();
		os.close();
		
		
	}

}

运行结果

在这里插入图片描述在这里插入图片描述

おすすめ

転載: blog.csdn.net/qq_45791799/article/details/108967722