- 230
- 0
- 约 8页
- 2017-01-30 发布于重庆
- 举报
并发服务器端程序设计实验报告
综合性、设计性实验项目简介
学院名称(公章): 学期 填表日期: 年 月 日
实验课程名称 网络程 主要培养学生组织能力。设计并发策略的目的就是就是让IO操作和CPU计算尽量重叠进行。一方面要让CPU在IO等待不要空闲,另一方面要让CPU在IO调度上尽量花最少的时间。
(1)一个进程处理一个连接,非阻塞IO
这样会存在多个并发请求同时到达时,服务器必然要准备多个进程来处理请求。这种策略典型的例子就是Apache的fork和prefork模式。对于并发数不高的站点同时依赖Apache其它功能时的应用选择Apache还是可以的。
(2)一个线程处理一个连接,非阻塞IO
这种方式允许在一个进程中通过多个线程来处理多个连接,一个线程处理一个连接。Apache的worker模式就是这种典型例子,使其可支持更多的并发连接。不过这种模式的总体性能还不如prefork,所以一般不选用worker模式。
(3)一个进程处理多个连接,非阻塞IO
适用的前提条件就是多路IO就绪通知的应用。这种情况下,将处理多个连接的进程叫做worker进程或服务进程。worker的数量可以配置,如Nginx中的worker_processes 4
(4)一个线程处理多个连接,异步IO
即使有高性能的多路IO就绪通知,但磁盘IO的等待还是无法避免的。更加高效的方法是对磁盘文件使用异步IO,目前很少有Web服务器真正意义上支持这种异步IO。
#include stdio.h
#include string.h
#include arpa/inet.h
#include netinet/in.h
#include sys/socket.h
#include sys/time.h
#define MAXLINE 4096
int main( int argc , char * * argv )
{
int listenfd , connfd;
struct sockaddr_in servaddr;
char sendBuff[ MAXLINE ], recvBuff[ MAXLINE ];
time_t ticks;
pid_t pid;
listenfd = socket( AF_INET , SOCK_STREAM , 0 );
memset( servaddr , 0 , sizeof( servaddr ) );
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
servaddr.sin_port = htons( 10023 ); //端口:10023 无法使用23号端口
bind( listenfd , (struct sockaddr *)servaddr , sizeof( servaddr ) );
listen( listenfd , 1024 );
int i = 0;
for( ; ; )
{
printf(Start!\n);
connfd = accept( listenfd , (struct sockaddr *)NULL , NULL );
printf(Client ID: %d\n,i); //记录连接客户数量
if( (pid = fork()) == 0 ) //多进程
{
close( listenfd );
sendBuff[0] = 0Xff;
sendBuff[1] = 0Xfb;
sendBuff[2] = 0X01; //Will Echo 命令
sendBuff[3] = 0Xff;
sendBuff[4] = 0Xfb;
sendBuff[5] = 0X03; //Will Suppress Go Ahead 命令
write( connfd , sendBuff , 6 );
read( connfd, recvBuff, MAXLINE ); //读取回传值,本实验中丢弃
ticks = time( NULL );
snprintf( sendBuff , sizeof( sendBuff ) , \r\nWelcome to 10023 port Telnet Server!\r\nTime of server: %.24s\r\n , ctime( ticks ) );
write( connfd , sendBuff , strlen( sendBuff ) ); //发送欢迎信息
snprintf( sendBuff ,
您可能关注的文档
最近下载
- 图案变化与统一课件设计.pptx VIP
- 2025年金融风险管理师买入看跌期权与卖出看跌期权策略专题试卷及解析.pdf VIP
- 2025年拍卖师拍卖谈判中的谈判记录与总结技巧专题试卷及解析.pdf VIP
- 2025年房地产经纪人客户隐私保护监管政策解读专题试卷及解析.pdf VIP
- 基于单片机的数控直流稳压电源的设计.docx VIP
- 县域消费扶贫与长效帮扶机制分析.pdf VIP
- 2025年项目管理专业项目交付成果验收检查表编制专题试卷及解析.pdf VIP
- 煤矿露天改扩建项目竣工验收报告.docx
- 人体解剖学复习测试有答案(二).doc VIP
- 基于stm32的智能小车设计毕业设计论文.docx VIP
原创力文档

文档评论(0)