博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浏览器输入服务器端口号来访问html网页
阅读量:4578 次
发布时间:2019-06-09

本文共 2953 字,大约阅读时间需要 9 分钟。

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

    把学要的资料(即要显示在网页上的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();        }    }}

  

 

转载于:https://www.cnblogs.com/Hubert-dzl/p/10975797.html

你可能感兴趣的文章
dubbo 集群容错源码
查看>>
Collection接口的子接口——Queue接口
查看>>
LINUX安装NGINX
查看>>
服务器启动项目抛错 没有到主机的路由
查看>>
python_85_sys模块
查看>>
第九周动手动脑
查看>>
HDU 1811 Rank of Tetris
查看>>
winform 获取当前名称
查看>>
报表分栏后的排序
查看>>
Django中models定义的choices字典使用get_FooName_display()在页面中显示值
查看>>
nohup命令详解(转)
查看>>
别人的Linux私房菜(1)计算机概论
查看>>
系统编程之文件操作
查看>>
ModelState.IsValid
查看>>
菜鸟之路——机器学习之线性回归个人理解及Python实现
查看>>
opengl glut vs2013配置
查看>>
dialogPostRun 覆盖方法class Dialog 动态创建
查看>>
20170320_系统管理_部门管理2
查看>>
csust1086蘑菇真的贵,友情价更高
查看>>
有关指针和数组的理解
查看>>