1、 课程设计说明书课程设计说明书(论文论文) 题 目 线程同步服务器编程 课 程 名 称 通信应用软件课程设计 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 设计起止时间:2011 年 12 月 5 日至 2011 年 12 月 9 日 成绩 目录目录 1.1.问题描述问题描述 . 3 1.1 背景 3 1.2 题目要求 3 1.3 源代码运行方法及功能描述. 3 1.4 关系模式. 4 . .方案图表设计方案图表设计 4 2.1 UDP 实验原理图形 4 2.2 TCP 实验原理图形 5 2.3 互斥锁实验原理图形 7 3.3.部分函数源代码部分函数源代码 错误!未定
2、义书签。 3.1 互斥锁 错误错误!未定义书签。未定义书签。 3.2 TCP 服务器 错误错误!未定义书签。未定义书签。 3.3 TCP 服务器添加时间显示时间 错误错误!未定义书签。未定义书签。 4.4.结果数据处理结果数据处理 10 5.5.结束语结束语 . 12 5.1 课程设计心得 12 6.6.参考文献参考文献 . 13 1.问题描述问题描述 1.1 背景背景 在多进程/多线程环境中,线程及进程同步是十分重要的。该技术解决了 由并发而产生的同步问题,使得并发服务器能可靠的运行。 进程是一个可拥有资源的基本单位,也是一个可独立调度和分配的基本 单位。一个进程至少有一个线程。 线程是进程
3、内的独立执行实体和调度单位, 创建线程比进程快10100 倍。 一个进程内的所有线程共享相同的内存空间、全局变量等信息。 本次课程设计主要对线程同步、 进程同步及进程间通信技术进行了实现。 多线程并发服务器存除了存在线程安全性问题外,还存在线程同步性问 题。线程在处理共享数据和进程资源时必须使用同步机制。 1.2 题目要求:题目要求: 1.在了解线程同步、进程同步及进程间通信技术的基础上,把 udpclient 改 成 tcpclient,即把 UDP 改成 TCP 连接,其余功能要求不变。 2.在客户端同时显示服务器的时间。 3.在了解线程同步、进程同步及进程间通信技术的基础上,将字幕传输的
4、顺 序以倒序输出。 1.3 源代码源代码运行方法及运行方法及功能描述:功能描述: 源程序运行方法:源程序运行方法: 先运行 thsync.c,然后打开一个终端启动服务器程序 mproc_client.c, 再打开一个新的终端运行客户程序(mproc_client.c)3 次。 thsyncthsync.c.c 程序功能:程序功能: 1 服务器在特定的套接字地址上监听器,接受客户发来的信息并显示客 户的 IP 地址及请求信息, 同时显示处理客户请求的线程号。 2 如果服务器接 收到的客户信息为 quit,则推出循环,并关闭套接字。 3 客户向服务器发 信息,然后等待服务器响应,一旦收到服务发来的信息,则显示该信息,并 关闭套接字。 4 添加了getcurtime函数及其调用, 在thysynserv、 thysynser1 程序基础上,服务器将时间信息发送出去,并在客