并发回射服务器的最基本实现思路( fork )
2014-02-22 11:37
519 查看
前言
一个服务器,通常会在一段时间内接收到多个请求。如果非要等到处理完一个请求再去处理下一个,势必会造成大部分用户的不满( 尤其当有某个请求需要占用大量时间时 )。如何解决这个问题?让处理这些用户请求的进程并发起来吧!
实现方法
方法一:当客户请求到达,服务器进程创建一个自身副本( 调用fork函数 )。这是网络服务器的经典用法。
方法二:当客户请求到达,服务器进程创建一个自身副本( 调用fork函数 ),然后用本机内的另一个程序替换自身( 调用execve函数 )。
注:fork和execve函数均包含于 unistd.h 头文件中
方法一实例代码
方法二实例代码
暂时没有发现,留待日后补充。
一个服务器,通常会在一段时间内接收到多个请求。如果非要等到处理完一个请求再去处理下一个,势必会造成大部分用户的不满( 尤其当有某个请求需要占用大量时间时 )。如何解决这个问题?让处理这些用户请求的进程并发起来吧!
实现方法
方法一:当客户请求到达,服务器进程创建一个自身副本( 调用fork函数 )。这是网络服务器的经典用法。
方法二:当客户请求到达,服务器进程创建一个自身副本( 调用fork函数 ),然后用本机内的另一个程序替换自身( 调用execve函数 )。
注:fork和execve函数均包含于 unistd.h 头文件中
方法一实例代码
/* * 仅展示处理客户请求那部分的代码模块 */ while (1) { // 接收客户信号 connfd = accept(listenfd, ...); // 当该进程为子进程时,... ...( 注意如果是父进程执行则会创建一个子进程 ) if ( (pid = fork() ) == 0 ) { // 关闭子进程自身的监听套接字 close(listenfd); // 子进程响应客户 doit(connfd); // 关闭子进程的连接套接字 close(connfd); // 关闭子进程 exit(0); } // 关闭父进程的连接套接字 close(connfd); }
方法二实例代码
暂时没有发现,留待日后补充。
相关文章推荐
- 第八篇:并发回射服务器的最基本实现思路
- select实现tcp并发服务器的基本框架流程
- linux(一)------多进程并发服务器实现(fork)
- 基于TCP协议用多线程实现并发服务器,实现思路、算法和demo
- 服务器编程入门(11)TCP并发回射服务器实现 - 单线程select实现
- 服务器负载均衡的基本功能和实现原理
- Linux下突破限制实现高并发量服务器
- 几种并发服务器模型的实现:多线程,多进程,select,poll,epoll
- 【原创】TCP Socket 简单练习 --- 线程池实现并发服务器 分类: Linux --- 应用程序设计 2014-12-25 13:59 50人阅读 评论(0) 收藏
- redis实现商城中的秒杀并发问题思路
- 高性能并发Web服务器实现核心内幕
- LINUX环境并发服务器的三种实现模型
- 构建基于Nginx的文件服务器思路与实现
- LINUX 并发服务器 fork
- 服务器负载均衡的基本功能和实现原理
- 实现高并发服务器三种简化模型 线程 进程 IO复用
- 服务器负载均衡的基本功能和实现原理
- 第十三篇:并发回射服务器的具体实现及其中僵尸子进程的清理( 下 )
- python高并发异步服务器核心库forkcore使用方法