上一篇A:对网络编程的看法 主要是介绍了网络编程中一般会用到的IP地址和端口的概念,那么今天我们再继续对网络编程进行深一层次的了解。
那么从上一篇A:对网络编程的看法我们了解的网络编程,其实就是多个不同的设备,通过识别对方来进行数据的传输或者交换,这是一种对网络编程的宏观了解,那么今天我们就再进一步去了解网络编程是怎样进行传输数据的,也就是网络通讯的过程。
网络通讯时是基于“请求—相应”模式来进行,IP地址和端口号已经可以让我们能够识别设备,那么必须要有一台设备去要求建立连接,也就是比较主动的一方叫做客户端,还要有设备愿意反应他的连接,也就是服务端。打个比较恰当的比方,我们去火车站售票口去买票,肯定是我们先问:“上海到南京的票今天有几趟?”售票员便会相应你的问题:“十二点有一趟动车,下午一点有一趟高铁….”然后你再说:“我买十二点的动车票两张。”售票员会相应你的要求,打出两张票来给你。整个过程买票者就是一个“请求—相应”的过程,买票者就是客户端,售票员便是服务端。 由此,理解了上段,那么我们总结为: 在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。 如果你去阅读相关网络编程的书籍,肯定会有C/S结构的例子。C便是Client,S便是Server,书中的例子一般都是聊天程序,像QQ一样,肯意实现两个设备的数据传输。使用C/S结 构的程序,在开发时需要分别开发客户端和服务器端,这种结构的优势在于由于客户端是专门开发的,所以根据需要实现各种效果,而服 务器端也需要专门进行开发。但是这种结构也存在着很多不足,一种程序的客户端只能和对应的服务器端通讯,而不能和 其它服务器端通讯,在实际维护时,也需要维护专门的客户端和服务器端,维护的压力比较大。 除了C/S结构,还有一种结构就是B/S结构,是Browser/Server的简称。这种结构就是不去使用专门的客户端,但是会使用通用的客户端。这种结构强于C/S结构的是开的压力小,不用去维护客户端。其实,总的说来,B/S结构是一种特殊的C/S结构。 但是,我必须要强调一点:虽然我们分为客户端和服务端,但是一旦两台设备建立连接,那么两者便完全一样,没有任何区别。 |