1、课程设计 1 操作系统课程设计报告操作系统课程设计报告 课程设计 2 目录目录 一一 设计要求和目的设计要求和目的3 二二 背景知识背景知识4 三三 客户端设计客户端设计5 四四 客户端主要代码客户端主要代码6 五五 设计体会设计体会9 课程设计 3 摘要摘要 随着网络信息时代的来临,Internet网上获取和 交流信息。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都 会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。聊天室更适合于陌生人之 自由的聊天世界。因此我们联系所学的操作系统、数据库和 MFC 知识决定做一个简易的聊天 系统。 一、设计要求和目的设计
2、要求和目的 此课题是实现一个即时通信系统完成 1:进程间通信、并发(同步/互斥)、文件读写 2:内存管理、Dll、Windows 消息机制、IO。 课题任务分工: 客户端子系统:客户端子系统: 在客户端系统的功能实现上,可以分为以下几个部分: 1进程信息的输入 系统把用户进程要求发送的信息由键盘输入从文件读取。这部分功能是客户端子 系统的基本部分,这个功能是以后各个部分的基础。系统要求做到即能够从其它子系 统中共享一部分信息 2进程信息的存储: 将进程的信息存储到客户端系统中,以及将发送的信息保存在文件中,以备以后 进程之间通信确认以及查询。 3通信数据的传递及接收: 将客户所发送的信息由客户
3、端由网络传到服务器端上,并且接受航服务器返回的 接收方发送的信息,然后存储起来。 课程设计 4 用户 客户端 服务器端 用户设置 连接设置 用户发送 信息 通信内容 用户得到 的信息 处理用户 退出 服务器日志数据通信信息 连接 保存 保存 处理 监控 二二背景知识背景知识 SOCKET Socket 可以看成在两个程序进行通讯连接中的一个端点, 是连接应用程序和网络驱动程 序的桥梁,Socket 在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给 Socket 的数据,由 Socket 交网络驱动程序向网络上发送出去。计算机从网络上收到与该 Socket 绑定 IP 地址和端口
4、号相关的数据后,由网络驱动程序交给 Socket,应用程序便可从 该 Socket 中提取接收到得数据,网络应用程序就是这样通过 Socket 进行数据的发送与接收 的 (1) 创建 Socket; (2) 打开连接到 Socket 的输入/出流; (3) 按照一定的协议对 Socket 进行读/写操作; 课程设计 5 (4) 关闭 Socket. IO 技术技术 阻塞模式 可能造成阻塞的函数有:connect()、accept()、读写函数 C/SC/S 两端通过两端通过 SocketSocket 机制进行连接机制进行连接 (1) 客户端的编程流程: a 创建 Socket 对象,向 Ser
5、ver 的监听端口请求; b 通过向新 Socket 中读写数据与 Server 端通信; c 关闭 Socket,结束与 Server 端; (2)服务器端的编程流程: 1 打开 Server Socket,创建一个服务器型套接字和一个普通套接字, 服务器型套接字在指 定端口为客户端请求的 Socket 服务; 2 等待来自客户端的 Client 端的请求; 3 接收 Client 端的请求,用返回的 Socket 建立连接; 4 通过向 Socket 中读写数据来与 Client 端通信; 5 关闭 Socket,结束与当前 Client 端的通信; 6 关闭 SerketSocket 对象结束监听服务。 三三客户端设计客户端设计 客户端主要完成建立连接、消息输入、消息发送、消息存储功能。 功能含义如下: 1.建立连接:建立一个 ServerSocket 连接,不断侦听是否有服务端连接或者断开连接。 2.消息输入:根据用户输入的消息,将消息显示在屏幕面板上。 3.消息发送:把用户输入的消息作为字符串通过 Socket 端口发送到服务器。 4.消息存储:把用户输入的消息存储到 data.txt 文件中,以便用户以后查阅聊天记录。 客户端设计如下:客户端设计如下: 1.界面设计 2.连接设计 3.接收信息设计 4.用户信息设计 5.帮