Linux C 网络编程——5. 并发服务器
来源:互联网 发布:淘宝水果店招图片大全 编辑:程序博客网 时间:2024/04/29 09:40
1. 原理
在Linux C 网络编程——4. 简单TCP Socket程序中实现了一个最基本的基于TCP的CS通信,
这里介绍一种可以允许Server端可以同时处理多个请求(并发服务器)。
原理:每次accept服务器调用fork(),创建一个子进程处理请求。
2. 实现
只需要修改上一篇文章中的Server.c的while循环即可
while(1){addr_len = sizeof( caddr ); connfd = accept( listenfd, (struct sockaddr*)&caddr, &addr_len ); n = fork();if( n == -1 ){perror("call to fork");exit(1);}else if( n == 0 ) //child process {close( listenfd );while(1){n = recv( listenfd, buf, 100, 0 ); printf("Recive from %s : %d \n", inet_ntop( AF_INET, &caddr.sin_addr, str, sizeof(str) ), ntohs(caddr.sin_port) ); for(i=0; i<n; i++) { buf[i] = toupper( buf[i] ); } //write( connfd, buf, n+1 ); send( connfd, buf, n+1, 0 ); printf("Send : %s \n", buf); close( connfd ); }//while}//else// father process{close( connfd );}}//while -- father
3. 参考
[1] Linux C编程一站式学习
[2] Linux 环境下C编程指南
- Linux C 网络编程——5. 并发服务器
- Linux C 网络编程——5. 并发服务器
- Linux网络编程——tcp并发服务器(多线程)
- Linux网络编程——tcp并发服务器(多线程)
- Linux网络编程——tcp并发服务器(多线程)
- Linux网络编程——并发服务器模型
- linux c 网络编程 并发
- linux网络编程多进程并发服务器
- linux网络编程多进程并发服务器
- linux网络编程:并发服务器的模型
- Linux网络编程之高级并发服务器
- Linux网络编程之简单并发服务器
- Linux网络编程之高级并发服务器
- Linux网络编程之简单并发服务器
- Linux网络编程之简单并发服务器
- Linux网络编程之高级并发服务器
- Linux网络编程之高级并发服务器
- Linux网络编程之高级并发服务器
- 轨迹回放 百度地图
- strace linux 下程序的系统调用和信号调用跟踪工具
- DevExpress中如何实现GridControl的分页功能
- 程序员编程技术迅速提高终极攻略
- lsscsi ,strace, raid,lvm 等常用命今
- Linux C 网络编程——5. 并发服务器
- jQuery上传插件Uploadify使用详解
- RTP 协议
- 分支控制语句
- spring aop事务管理配置
- nodepad++快捷键
- I,P,B帧和PTS,DTS的关系
- FileWriter不能写utf-8的原因及解决
- 数据库中数据数据初始化的好处