zoukankan      html  css  js  c++  java
  • 浏览器输入服务器端口号来访问html网页

    在开始写代码之前,先要把准备工作做好:

        把学要的资料(即要显示在网页上的html文件 和图片)放在Moudle的根目录下,如图:

        

    package cn.kgc.cn.kgc.bs;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.io.InputStream;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.BufferedOutputStream;
    import java.net.Socket;
    public class Server {
        public static void main(String[] args) {
            try {
                //首先创建服务器的ServerSocket接口对象
                ServerSocket server=new ServerSocket(8888);
                while(true){
                    //通过server的accept()方法来对网络端进行监听,并获得网络端Socket对象
                    Socket socket=server.accept();
                    //创建多线程,以提高效率
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try{
                                //获得网络字节输入流,以便于读取网络端发送的地址请求
                                InputStream is=socket.getInputStream();
                                //使用BufferedReader把网络字节输入流包装成网络字符缓冲流,提高读取效率
                                BufferedReader br=new BufferedReader(new InputStreamReader(is));
                                //读取网络端返回的字符串请求中的第一行
                                String line=br.readLine();
                                //对第一行内容进行分割,以便于下面获取网络端需要访问的文件路径
                                String[]split=line.split(" ");
                                /**
                                 * 分割后的元素存放在数组中
                                 * 对下标为1的元素进行截取
                                 * 获得学要的文件路径
                                 */
                                String sub=split[1].substring(1);
                                System.out.println(sub);
                                /**
                                 * 需要使用服务器的本地字节输入流
                                 * 把文件按照得到的路径写到
                                 * 服务器的内存中
                                 * 然后使用网络字节输出流
                                 * 把内存中的文件写到网络端
                                 */
                                //把本地字节输入流和网络字节输出流分别包装成缓冲字符输入流和字符输出缓冲流
                                BufferedInputStream bis=new BufferedInputStream(new FileInputStream(sub));
                                BufferedOutputStream bos=new BufferedOutputStream(socket.getOutputStream());
                                int len=0;
                                //读取文件
                                while((len=bis.read())!=-1){
                                    //把文件写到网络端
                                    bos.write(len);
                                }
                                //释放资源呢
                                bos.close();
                                bis.close();
                                is.close();
                                socket.close();
                            }catch(IOException e){
                                e.printStackTrace();
                            }
    
                        }
                    }).start();
    
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

      

  • 相关阅读:
    BZOJ 1096: [ZJOI2007]仓库建设 动态规划 + 斜率优化
    CF576D Flights for Regular Customers 矩阵乘法 + Bitset优化
    BZOJ 3879: SvT 虚树 + 后缀自动机
    CF613D Kingdom and its Cities 虚树 + 树形DP
    luogu P4103 [HEOI2014]大工程 虚树 + 树形 DP
    BZOJ 2286: [Sdoi2011]消耗战 虚树
    组合数学入门
    对于下发的文件进行爬取,减少人去下载的过程
    写了个爬虫代理ip的脚本给大家使用
    文本属性,边界圆角,背景属性,精灵图案例
  • 原文地址:https://www.cnblogs.com/Hubert-dzl/p/10975797.html
Copyright © 2011-2022 走看看