上篇我们了解了网络编程的基本知识,以及服务器与客户端的关系,接下来我们可以利用所学的知识建立一个简易的BS服务器,并通过浏览器进行访问。
一、利用Java构建一个服务器
此时我们需要对代码进行优化,让服务器一直处于监听状态,方便时刻接收客户端发出的请求,即添加一个while(true)死循环;接着,再提升服务器的接收效率,即通过多线程同时接收不同客户端发出的请求;最后,通过同步锁控制线程的安全性。代码如下:
二、由服务器向客户端回写访问的文件
首先我们先通过getOutputStream()获取网络输出流对象os,先写入以下代码:(这是HTTP协议中固定的响应代码,目前不做讨论)
接着,通过os调用write()方法向客户端输送文件,和上篇上传文件的方法一样,代码如下:
最后,启动服务器,等待接收客户端发出的请求信息。
三、由浏览器向服务器发送请求
此时我们需要在浏览器输入http://网络IP:端口号/文件路径,如:
这是客户端访问服务器时发送的请求信息:
请求信息的第一行就包含路径, 而我们的下面代码就是对浏览器的请求信息进行截取(只截取要访问文件的路径),所以用BufferedReader中的readLine读入第一行,接着调用split()方法将空格作为分离标记,接着调用substring()方法从下标为1的地方开始读(即W):
获取到访问的文件路径后,回车搜索就可以访问服务器中的文件,页面如下:
那么,本篇简易模拟BS的内容就到这里,下篇我会写一些在制作程序以及操作时遇到的问题及解决方法,如:乱码、找不到指定路径、外部css无效果、以及图像无法加载到页面等,绝对干货。(欢迎评论区进行讨论)