- 17
- 0
- 约9.67千字
- 约 13页
- 2016-08-06 发布于江西
- 举报
网络应用与开发课设.doc
成绩
南京工程学院
课程设计说明书(论文)
题 目 设计C/S结构的聊天程序
课 程 名 称 网络应用与开发
院(系、部、中心)
专 业 网络工程
班 级
学 生 姓 名
学 号
设 计 地 点 信息楼A402
指 导 教 师
设计起止时间:2013年12 月30日至 2014年 1 月 3日
设计C/S结构的聊天程序
一.课程设计目的
《网络应用与开发课程设计》是学完《网络应用与开发》课程之后,让学生综合运用网络高层协议的工作原理和WINSOCK API的网络编程接口及WINSOCK I/O模型知识,进行实际网络通信程序的设计,调试,以加深对WINSOCK API的网络编程接口及WINSOCK I/O模型知识的理解,提高综合应用知识的能力,分析解决问题的能力和网络通信程序设计技能,初步培养设计实用网络通信程序的能力。
二.课程设计方案
本课题是建立聊天通信模型,设计C/S结构的聊天程序。
有聊天的界面,传输协议用TCP协议。
程序由服务端,客户端组成,支持多客户端。
包含多线程技术,服务端,客户端能互发数据。
课程设计任务,主要功能及描述
服务器端功能:
1、初始化socket, 创建服务器端。
2、维护一个链表,保存所有用户的IP地址、端口信息。
3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。
4、接受用户传送来的连接判断命令,并向用户发出响应命令。
客户端功能:
客户端界面上的两个文本框, 一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。
服务器端聊天程序必须能够做3件事情:
服务器聊天程序要在待定的端口上等待来自聊天客户的连接求,并且需要维护一个客户连接表,以记录所有成功的连接。
(2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连
接。对于公共聊天室,服务器将把接受到的信息向除源端外的所有客户发送过去。
(3)服务器还要监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。这些要求可以通过CSocket类提供的功能实现。从CSocket派生出两个类CListenSocket和CClientSocket,它们分别用来侦听客户的接请求和建立与客户的连接。服务器只需要一个侦听套接字CListenSocket,然后根据客户的连接请求动态创建客户套接字CClientSocket。客户套接字的数量是不可预知的,因此需要一个列MFC的CPtrList类就能实现这种功能。
客户端聊天程序需要完成以下几个功能:
(1)客户端聊天程序要负责建立和维护与服务器的连接,通过获取用户的设置尝试与服务器的连接,并且随时检测连接的状态。
(2)客户端聊天程序要把用户输入的信息及时发送到聊天服务器。一般情况下,当用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才能及时地满足用户的交互需求。
(3)要随时准备好接受来自服务器的信息,随时把接受到的信息显示出来,让用户及时看到对方的响应。
(4) 在用户退出聊天过程是要关闭与服务器的连接。比较好的做法是提前通知服务器或者直接给服务器发送
一条退出通知,使得服务器能够及时掌握客户端的连接状态,把对方客户的退出信息及时发送到对等实体上。客户端聊天程序需要使用一个通过CSocket类派生出来的CChatSocket类来实现。该套接字用来发送一个与服务器的连接请求和维持与服务器的连接,发送和接收聊天信息,完成上述各项功能。
算法或框图、关键代码(或配置清单)说明
流程图:
//服务器关键代码
//初始化对话框
BOOL CCSocketDlg::OnInitDialog(
原创力文档

文档评论(0)