基于c#实现的聊天软件设计报告_第1页
基于c#实现的聊天软件设计报告_第2页
基于c#实现的聊天软件设计报告_第3页
基于c#实现的聊天软件设计报告_第4页
基于c#实现的聊天软件设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 c 实现的聊天软件实现的聊天软件 基于基于 c c 实现的聊天软件设计报告实现的聊天软件设计报告 基于基于 c 实现的聊天软件实现的聊天软件 目录目录 一 作品设计概述作品设计概述 3 1 1 背景意义背景意义 3 2 2 创新点创新点 3 二 二 作品分析设计作品分析设计 3 1 1 主要功能及分析主要功能及分析 3 2 层次结构及各层通信协议 3 三 三 作品主要功能使用说明及演示作品主要功能使用说明及演示 10 1 运行主界面 10 2 启动服务器 11 3 开启客户端 12 4 聊天通信功能说明 13 5 截图功能 14 四 结论 15 五 参考文献 15 基于基于 c 实现的聊天软件实现的聊天软件 一 作品设计概述作品设计概述 1 1 背景意义背景意义 在网络信息技术高速发展的今天 传统的通信方式已然满足 不了人们的需求 利用网络资源实现多机通信可以最大程度地满足人们对 通 信的需求 而不限制于距离地点 而如今流行着很多种网络聊天工具 如 QQ MSN 等 都是集成的多功能聊天工具 所以 我利用这学期所学的关于 C 的 相关知识及网络资源 利用 NET 平台实现了一个简单的聊天工具 具备了 和聊天相关的基本功能 而开发这个软件的最大意义我认为在于巩固和加 深对 C 相关知识的学习 2 2 创新点创新点 我认为这款聊天软件的创新点在于 它除了实现了基本的聊天功能 如文本聊天 保存聊天记录 导出聊天记录 修改字体等 还实现了用户 自定义的截图功能截图功能 更大程度的满足了用户对通信功能的需求 二 二 作品分析设计作品分析设计 1 1 主要功能及分析主要功能及分析 1 进行即时通信 该功能主要指服务器和多个客户端进行即时通信 该功能实现的主要 是文本传输 而对于发送即时消息的过程中 用户可以自定义设置发送文 本的字体大小 清空输入框 保存聊天记录 导出聊天记录等功能 只要 成功与服务器端连接 可以实现多个客户端与服务器进行即时通信 2 自定义截图功能 该功能主要是模仿目前流行的聊天软件普遍具有的截图功能 用户可 以利用该功能实现自定义窗口大小的截图并保存 更大程度满足了用户对 通信的需求 方便了用户的操作 2 2 层次结构及各层通信协议层次结构及各层通信协议 层次结构可以大体分为服务器和客户端两大部分 下面对其进行具 体说明 1 服务器模块 基于基于 c 实现的聊天软件实现的聊天软件 服务器 sever 启动监听 TcpListener 停止服务 stop 等待 建立连接 TcpClient 收发数据 NetStream A 实现框图 F Y 主要类设计主要类设计 sever tcp 的设计 调用到的主要类及方法属性 1 线程类 ThreadStar Thread 线程同步线程同步 2 IP 地址 IPAddress IPAddress Parse 3 监听 TcpListener netStream 4 信息传送 流 ReadWriteObject 附上主要部分程序 利用多线程实现监听和建立通信连接部分 public partial class server tcp Form private void buttonStart Click object sender EventArgs e 基于基于 c 实现的聊天软件实现的聊天软件 用于服务器要为多个用户服务 所以需要创建一个线程监听客户端的连接要求 ThreadStartThreadStart tsts newnew ThreadStartThreadStart AcceptConnect AcceptConnect Thread myThread new Thread ts myThread Start buttonStart Enabled false buttonStop Enabled true private void AcceptConnect 获取本机所有IP地址 IPAddressIPAddress localaddlocaladd IPAddressIPAddress Parse Parse 192 168 0 4 192 168 0 4 IPAddress ips Dns GetHostEntry Dns GetHostName AddressList foreach IPAddress p in ips if p AddressFamily System Net Sockets AddressFamily InterNetwork localadd p break listenerlistener newnew TcpListenerTcpListener localadd localadd 51888 51888 listener Start private void ReadCallback IAsyncResult ar try ReadWriteObjectReadWriteObject readWriteObjectreadWriteObject ReadWriteObjectReadWriteObject ar AsyncState ar AsyncState int count readWriteOStream EndRead ar textBoxReceive Invoke setTextBoxCallback string Format 来自 0 1 readWriteObject client Client RemoteEndPoint System Text Encoding UTF8 GetString readWrite Object readBytes 0 count n if isExit false readWriteObject InitReadArray readWriteOStream BeginRead readWriteObject readBytes 0 readWriteObject readBytes Le ngth ReadCallback readWriteObject catch Exception err 基于基于 c 实现的聊天软件实现的聊天软件 listBoxStatus Invoke setListBoxCallback err Message 停止监听 按钮的Click事件 private void buttonStop Click object sender EventArgs e 使线程自动结束 isExit true 将事件状态设置为终止状态 允许一个或者多个线程继续 从而使线程正常结束 allDone Set buttonStart Enabled true buttonStop Enabled false 2 客户端模块 实现框图 客户端 client 启动连接 与服务器建 立连接 与服务器进 行通讯 结束通信 基于基于 c 实现的聊天软件实现的聊天软件 主要类设计 主要类设计 client tcpclient tcp 类 类 调用的主要类及方法成员 1 启动连接 TcpClient 2 IP 地址 IPAddress IPAddress Parse 3 监听 TcpListener netStream 4 信息传送 流 ReadWriteObject 5 5 委托 委托 AsyncCallbackAsyncCallback public partial class client tcp Form private void buttonConnect Click object sender EventArgs e clientclient newnew TcpClientTcpClient AddressFamilyAddressFamily InterNetwork InterNetwork IPAddress theip IPAddress Parse 127 0 0 1 IPAddress ips Dns GetHostEntry Dns GetHostName AddressList foreach IPAddress p in ips if p AddressFamily System Net Sockets AddressFamily InterNetwork theip p break 创建委托 并指明在异步操作完成时执行的方法 AsyncCallbackAsyncCallback requestCallbackrequestCallback newnew AsyncCallbackAsyncCallback RequestCallback RequestCallback 将事件的状态设为非终止状态 allDone Reset 开始对一个远程主机的异步请求 client BeginConnect theip 51888 requestCallback client listBoxStatus Invoke setListBoxCallback string Format 本机EndPoint 0 client Client LocalEndPoint listBoxStatus Invoke setListBoxCallback 开始与服务器建立连接 allDone WaitOne ar是IAsyncResult类型的接口 表示异步操作的状态 是由listener BeginAcceptTcpClient callback listener 传递过来的 private void RequestCallback IAsyncResult ar allDone Set try 获取连接成功得到的状态参数 client TcpClient ar AsyncState 异步接受传入的连接尝试 使BeginConnect正常结束 client EndConnect ar 基于基于 c 实现的聊天软件实现的聊天软件 listBoxStatus Invoke setListBoxCallback string Format 与服务器 0 连接成功 client Client RemoteEndPoint 获取接收和发送数据的网络流 networkStream client GetStream private void ReadCallback IAsyncResult ar 异步操作能执行到此处 说明调用BeginRead已经完成 try ReadObject readObject ReadObject ar AsyncState int count readOStream EndRead ar textBoxReceive Invoke setTextBoxReceiveCallback System Text Encoding UTF8 GetString readObject bytes 0 count private void SendString string str try byte bytesData System Text Encoding UTF8 GetBytes str r n networkStream BeginWrite bytesData 0 bytesData Length new AsyncCallback SendCallback networkStream networkStream Flush catch Exception err listBoxStatus Invoke setListBoxCallback err Message 3 3 截图模块 截图模块 该模块通过点击按钮就可以实现功能 调用的主要类和方法属性 1 线程启动和暂停 Thread 2 屏幕截取 PrtScreen Screen 3 图形画布 Bitmap 4 数据格式转换 DataFo rmats Clipboard DataFormats Format 附程序的主要部分 private void toolStripButton4 Click object sender EventArgs e if bCatch HideCurrent Checked this Hide 隐藏当前窗体 Thread Sleep 50 让线程睡眠一段时间 窗体消失需要一点时间 基于基于 c 实现的聊天软件实现的聊天软件 PrtScreen CatchForm new PrtScreen Bitmap CatchBmp new Bitmap Screen AllScreens 0 Bounds Width Screen AllScreens 0 Bounds Height 新建一个和屏幕大小相同的图片 Graphics g Graphics FromImage CatchBmp g CopyFromScreen new Point 0 0 new Point 0 0 new Size Screen AllScreens 0 Bounds Width Screen AllScreens 0 Bounds Height 保存全屏图片 CatchForm BackgroundImage CatchBmp 将Catch窗体的背景设为全屏时的图片 if CatchForm ShowDialog DialogResult OK 如果Catch窗体结束 就将剪贴板中的图片放到信息发送框中 IDataObject iData Clipboard GetDataObject DataFormats Format myFormat DataFormats GetFormat DataFormats Bitmap if iData GetDataPresent DataFormats Bitmap Catch fr new Catch fr richTextBox1 Paste myFormat fr Show Bitmap Save d c 聊天记录 gif ImageFormat Gif Clipboard Clear 清除剪贴板中的对象 this Show 重新显示窗体 程序运行流程图 程序运行流程图 服务器 启动服务 建立连接 发送 消息 接收 消息 停止服务 客户端 接 收 消 息 发 送 消 息 启动连接 截 图 功 能 断开连接 基于基于 c 实现的聊天软件实现的聊天软件 三 三 作品主要功能使用说明及演示作品主要功能使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论