# CS结构与BS结构
### 基本概述
B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
PS:像腾讯就是以C/S结构起家的,其旗下的QQ这一软件就是典型的C/S结构应用,像Facebook就是以B/S为结构的。B/S结构的好处就是方便,不跨平台性好,真正的实现了一次开发,处处运行。C/S结构以其稳定安全著称,降低了通讯代价,但是实现起来麻烦,需要开发服务器和客户端两套系统并且在不同的平台移植起来非常麻烦。所以现在大多是以C/S模式来开发。
### C/S系统结构
![](https://box.kancloud.cn/2016-02-23_56cbf5fcde17c.jpg)
### B/S系统结构
![](https://box.kancloud.cn/2016-02-23_56cbf5fd09bf6.jpg)
实例:
~~~
/**
模拟的简单Web服务器
*/
import java.io.*;
import java.net.*;
public class Servlet1{
public static void main(String[] args) throws Exception{
// 创建ServerSocket
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
System.out.println("9999");
OutputStream os = s.getOutputStream();
BufferedReader br = new BufferedReader(new FileReader("c:\\hello.html"));
String buf = "";
while((buf = br.readLine()) != null){
os.write(buf.getBytes());
}
br.close();
os.close();
s.close();
}
}
~~~
----------参考《韩顺平.细说Servlet》