热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

模拟_BS服务器代码实现

这里仅仅需要编辑服务器的代码,因为浏览器就可以是客户端对象实现步骤:1.将已存在的静态页面对象放在项目下2.创建server套接字3.实现服务器一直

这里仅仅需要编辑服务器的代码,因为浏览器就可以是客户端对象

实现步骤:

1.将已存在的静态页面对象放在 项目下
2.创建server套接字
3.实现服务器一直开启的状态
4.开启多线程技术,提高效率

//创建服务器ServerSocket对象ServerSocket server = new ServerSocket(8080);while (true){//使用accept获取SocketSocket sc = server.accept();new Thread(new Runnable() {@Overridepublic void run() {try {//获取InputStream网络字节输入流InputStream is = sc.getInputStream();if (is != null) {//创建缓冲流 , 转换为字符缓冲输入流BufferedReader bw = new BufferedReader(new InputStreamReader(is));//GET /IOTest/web/index.html HTTP/1.1String line;line = bw.readLine();//分割路劲String[] path = line.split(" ");//获取路径 IOTest/web/index.htmlString filename = path[1].substring(1); //filename = IOTest/web/index.htmlSystem.out.println("filename:" + filename);//创建本地字节输入流 FileInputStreamFileInputStream fis = new FileInputStream(filename);OutputStream os = sc.getOutputStream();//写入Http响应 os.write("HTTP/1.1 200 OK\r\n".getBytes());os.write("Content-Type:text/html\r\n".getBytes());//必须要写入空行,否则浏览器不解析os.write("\r\n".getBytes());//一读一写浏览器int len = 0;byte[] bytes = new byte[1024];while ((len = fis.read(bytes)) != -1) {//写入服务器os.write(bytes, 0, len);}fis.close();sc.close();}} catch (IOException e) {e.printStackTrace();}}}).start();}


推荐阅读
author-avatar
手机用户2602929765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有