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

    科技2026-02-14  16

    服务器端代码

    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(); } }

    运行结果

    Processed: 0.021, SQL: 9