年 9 月
18 日
实验课程名称
网络程序设计
实验项目名称
并发服务器端程序设计
实验项目性质 、综合性 、设计性√ 主讲教师 刘尚旺
开课年级
开课专业
软件技术、
网络技术
实验地点 过街楼实验室
开课日期 年 月 日至 年 月 日
开课时间 月 、、、 日上午 ::
一、实验目的及要求
1. 选用多进程或多线程技术之一实现以下功能:服务器等待接收客户端的请求,
一旦连接成功即显示客户端的 地址及端口号,接着接收客户端的名称并加以显
示;然后接收来自该客户端发送的字符串,每当收到一个字符串,即显示之,并将
该字符串逆序后发回客户端;之后,继续等待接收该客户端的信息直到客户端关闭
连接。
2. 掌握网络编程中使用多进程与多线程设计并发服务器的异同点。
3. 掌握 和 函数的区别。
该实验分 次完成,每组 人。
第 次:完成并发服务器端程序的主框架设计,进行调试,验证其正确性;( 学时)
第 次:完成并发服务器端程序的调试,并验证其正确性;( 学时)
第 次:详细设计,进行调试,验证其正确性;( 学时)
第 次:进行整体调试,运行程序,验证其正确性,完成实验报告。( 学时)
该实验能巩固和加深课堂教学内容,能提高学生利用网络编程模拟仿真解决实际问题
的能力主要培养学生的组织能力与科学作风。这对学习其它课程及从事工程实践都有所帮
助。
二、实验环境
操作系统:
内核: !"
三、服务器并发策略
设计并发策略的目的就是就是让 IO 操作和 CPU 计算尽量重叠进行。一方面要让 CPU 在
IO 等待不要空闲,另一方面要让 CPU 在 IO 调度上尽量花最少的时间。
(1)一个进程处理一个连接,非阻塞 IO
这样会存在多个并发请求同时到达时,服务器必然要准备多个进程来处理请求。这种策略
典型的例子就是 Apache 的 fork 和 prefork 模式。对于并发数不高的站点同时依赖 Apache
其它功能时的应用选择 Apache 还是可以的。
(2)一个线程处理一个连接,非阻塞 IO
这种方式允许在一个进程中通过多个线程来处理多个连接,一个线程处理一个连