目前大家所用的大多是X86服务器,其功能完善、运行速度快、软件支持性好等优点,已被人们普遍认同。但随着互连网的发展,我们需要更多的小型服务器终端,因此,低成本、低功耗的嵌入式服务器将有极大的应用空间。那么粤嵌重庆嵌入式Linux培训解析一下并发服务器原理及框架。
基本的C/S服务模型。相互通信的网络程序通常可以分为客户端和服务器端两部分。简单的C/S服务模式客户端和服务器采用的是一对一的关系,而实际上一个客户同时可以与多个服务器通信,一个服务器同时也能与多个客户通信。Linux下使用TCP套接字编程可以实现基于TCP/IP协议的面向连接的通信,它分为服务器端和客户端两部分。
服务器端与客户端连接的步骤如下:使用socket函数创建套接字;将创那的套接字绑定到指定的地址结构;Listen函数设置套接字为监听模式,使服务器进入被动打开的状态;接受客户端的连接请求,建立连接;终止连接。
客户端实现步骤如下: 使用socket函数创建套接字;调用connect函数建立一个TCP服务器的连接;发送数据请求,接收服务器的数据应答;终止连接。这样就建立了简单的C/S连接模式,而所有基于TCP套接字的网络服务也都是建立在这个基础上的。
多进程并发服务器模型。其中服务器每次只能处理一个客户的请求,它的实现虽然很简单但效率却很低,在实际应用中,这样的服务器是不能满足实际需求的。在实际应用中为了让一个服务器同时为多个客户服务,处理多个客户的请求,那么就需要用并发服务器。
Linux下主要支持的并发服务器有进程、线程。创建线程要比进程快,但一个进程内的所有线程共享相同的内存空间、全局变量等信息,所以当一个线程崩溃时,它会影响同一进程中的其他线程。Linux系统中可以同时存在多个进程,但相对线程来说,进程是独立的。它拥有独立的地址空间、执行堆栈、文件描述符等,在未经允许的情况下,一个进程不能访问另一个进程的资源,因此一个进程崩溃不会造成其他进程的崩溃。
多进程服务器原理。在多进程并发服务器中是通过调用fork或vfork函数来创建新进程。当父进程产生新的子进程后,父、子进程共享父进程在调用fork之前的所有描述符。接下来父进程只负责接收客户请求,而子进程只负责处理客户请求。
对于粤嵌重庆嵌入式Linux培训所讲的并发服务器原理及框架,相信大家也了解了。这种低成本、低噪声、低功耗、高稳定性、高安全性的嵌入式服务器,将在我们信息化发展中的智能楼宇、智能家电、智能移动设备中获得应用。