- 298
- 0
- 约1.06万字
- 约 19页
- 2018-02-28 发布于贵州
- 举报
基于Socket的聊天室论文
设计报告
课 程
设计名称 基于Socket的聊天室
专业班级
同组人姓名
同组人学号
实验日期
指导教师
成 绩
年 月 日
一、设计目的和要求
1、实验目的
网络聊天系统主要对象是局域网内的用户,使用交流更简单。设计本系统的目标如下:
一台电脑上能够同时登陆多个不同的用户。
进入聊天页面后用户在用户列表中可以看到在线用户。
用户登陆成功后如果需要私聊可以在界面中勾选“悄悄话”选择框进行私聊。
若用户需要群聊,可以在好友列表中选择所有人进行群聊。
2、实验要求
可以实现用户显示、公共聊天、私人聊天、系统消息提示等功能。
二、设计说明(包括设计分析,系统运行环境,设计中的重点和难点,输入和输出输出条件等)
聊天室主要由聊天室服务器和聊天室客户端组成。聊天室服务器负责管理与客户端的连接并发送消息给客户端;聊天室客户端负责接收或者发送聊天消息,登录聊天室服务器等。一个简单的服务器/客户机聊天室模型如图:
1.首先启动聊天室服务器,使得TcpListener开始监听端口,此时TcpListener会进入Pending状态,等待客户端连接;
2.其次,当有客户端连接后,通过AccepSocket返回与客户端连接的Socket对象,然后通过读写Socket对象完成与聊天室客户端的数据传输。聊天室客户端成功启动后,首先创建一个Socket对象,然后通过这个Socket对象连接聊天室服务器,连接成功后开通Socket完成数据的接收和发送处理。
聊天室服务器和聊天室客户端消息的传递是这样进行的:
2.1聊天协议的应答:
在本聊天协议中只定义了两种应答:OK和ERR。客户端收到OK应答时,表示前面发送的聊天命令执行成功;收到ERR应答时,表示前面发送的聊天命令执行失败;
2.1.1聊天状态:
聊天状态:CLOSED和CONNECTED状态。当执行CONN命令后就进入CONNECTED状态。只有在这个状态下才可以执行以下的聊天命令:
CONN:连接聊天室服务器
JOIN:加入聊天(通知其他用户本人已经加入聊天室服务器)
LIST:列出所有的用户(向客户端发送全部的登录用户名字)
CHAT:发送聊天信息(公开的聊天信息)
PRIV:进行私聊(三个参数:私聊信息用户;接收私聊信息用户;发送信息)
EXIT:客户端向服务器发送离开请求;
QUIT:退出聊天,服务器向客户端发送退出命令(执行QUIT命令聊天状态变为CLOSED)
在执行了QUIT命令后,聊天状态就会变为CLOSED的状态,此时客户端只能执行CONN命令再次登录聊天室服务器。
2.1.2 聊天命令
聊天命令主要有:CONN,JOIN,LIST,CHAT,PRIV和QUIT,下面分别介绍这些命令的定义和格式。
1)CONN命令:
CONN命令连接聊天室服务器。当聊天室客户端和聊天室服务器建立了Socket连接后,会马上发送CONN命令。其命令格式如下:
CONN|发送者的用户名:附件信息|
CONN的参数为发送者的用户名,一般是用户用于聊天的昵称。如果昵称已经存在,就发送ERR命令,否则就发送OK命令。下面是两个CONN的链接过程,其中第一个是失败的连接过程,第二个是成功的链接过程:
CONN|tom|
-ERR|USER TOM ALREADY EXISTS
CONN|tom|
_OK
2)JOIN命令
JOIN命令用于通知用户加入聊天聊天室服务器。当一个用户登录到聊天室服务器后,服务器会发发送JOIN命令通知其他用户有新用户入聊天室服务器。JOIN的命令格式如下:
JOIN|XXXX|
JOIN的参数为刚刚登录到聊天室服务器的用户名,该命令可以不需要用户端的响应,客户端接收到该命名后一般就是更新界面,显示XXX已经加入聊天室。对于刚刚加入的用户,其状态会在收到JOIN命令后变为CONNECTED状态。
3)LIST命令
LIST命令用于向聊天室客户端发送全部的登录用户名字,以便于用户聊天室客户端上选择用户进行私聊。LIST命令的命令格式如下:
LIST\USERNAME 1| USERNAME2|….| USERNAMEX|
LIST命令的参数可以有很多,用户间用“|”分开,客户端接收到该命令后
您可能关注的文档
- 基于AT89S52单片机的智能小车设计论文.doc
- -基于PIC单片机的步进电机控制系统设计论文.doc
- 基于ATT7022A无功补偿控制器论文.doc
- 基于AT89S52单片机温度控制系统设计论文.doc
- 基于ATmega8单片机寻迹小车设计论文.doc
- 基于AT89S52单片机简易数控直流电压源的设计论文.doc
- 基于bmp085气压传感器制作的大气压强、温度、海拔高度测量仪(含详细源代码)论文.doc
- 基于C++的万年历系统设计论文.doc
- 基于C51单片机DS18B20温度计的设计与实现论文.doc
- 基于CAN总线数据采集系统的设计与实现——CAN总线通信实验论文.doc
- 第06讲+山水田园·自然清音(《钱塘湖春行》《饮酒》《黄鹤楼》《望岳》)(复习课件)2026年中考语文一轮复习讲练测.pptx
- 专题14+我国的地形、+地势与气候++(复习课件,含热点)(江苏专用)2026年中考地理一轮复习讲练测.pptx
- 主题10+“一带一路”倡议与国际合作(教学课件)地理中图中华地图版选择性必修2.pptx
- Unit 3 课时5 Section B(Vocabulary in Use)(情境教学课件)英语新教材人教版八年级下册.pptx
- 8.3印度+第2课时+(大单元教学课件)七年级下册人教版.pptx
- 第2课+巩固人民民主政权(课件)-2025-2026学年八年级历史下册互动型授课课件(统编版新教材).pptx
- Unit 1 课时3 Section A Grammar focus(课件)英语新教材鲁教版五四学制六年级下册.pptx
- 专题23+北方地区(复习课件)(全国通用)2026年中考地理一轮复习讲练测.pptx
- 第08讲+民生疾苦·现实关怀(《卖炭翁》《茅屋为秋风所破歌》《石壕吏》)(复习课件)2026年中考语文一轮复习讲练测.pptx
- 第47讲+胚胎工程+2026届高三生物一轮复习(人教版).pptx
原创力文档

文档评论(0)