基于c实现的聊天软件设计报告.docx
文本预览下载声明
基于c#实现的聊天软件设计报告作品设计概述:1.背景意义在网络信息技术高速发展的今天,传统的通信方式已然满足不了人们的需求。利用网络资源实现多机通信可以最大程度地满足人们对通信的需求,而不限制于距离地点。而如今流行着很多种网络聊天工具,如QQ,MSN等,都是集成的多功能聊天工具。所以,我利用这学期所学的关于C#的相关知识及网络资源,利用.NET平台实现了一个简单的聊天工具。具备了和聊天相关的基本功能,而开发这个软件的最大意义我认为在于巩固和加深对C#相关知识的学习。2.创新点我认为这款聊天软件的创新点在于,它除了实现了基本的聊天功能,如文本聊天,保存聊天记录,导出聊天记录,修改字体等,还实现了用户自定义的截图功能,更大程度的满足了用户对通信功能的需求。作品分析设计1.主要功能及分析(1)进行即时通信该功能主要指服务器和多个客户端进行即时通信。该功能实现的主要是文本传输。而对于发送即时消息的过程中,用户可以自定义设置发送文本的字体大小,清空输入框,保存聊天记录,导出聊天记录等功能。只要成功与服务器端连接,可以实现多个客户端与服务器进行即时通信。(2)自定义截图功能 该功能主要是模仿目前流行的聊天软件普遍具有的截图功能。用户可以利用该功能实现自定义窗口大小的截图并保存。更大程度满足了用户对通信的需求,方便了用户的操作。2.层次结构及各层通信协议 层次结构可以大体分为服务器和客户端两大部分,下面对其进行具体说明:服务器模块实现框图:F Y主要类设计:(sever_tcp的设计)调用到的主要类及方法属性:1.线程类: ThreadStarThread(线程同步)2.IP地址:IPAddressIPAddress.Parse()3.监听:TcpListenernetStream4.信息传送(流):ReadWriteObject附上主要部分程序(利用多线程实现监听和建立通信连接部分)publicpartialclassserver_tcp : Form {privatevoid buttonStart_Click(object sender, EventArgs e) {//用于服务器要为多个用户服务,所以需要创建一个线程监听客户端的连接要求ThreadStart ts = newThreadStart(AcceptConnect);Thread myThread = newThread(ts); myThread.Start(); buttonStart.Enabled = false; buttonStop.Enabled = true; }privatevoid AcceptConnect() { //获取本机所有IP地址IPAddress localadd = IPAddress.Parse();IPAddress[] ips = Dns.GetHostEntry(Dns.GetHostName()).AddressList;foreach (IPAddress p in ips) {if (p.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { localadd = p;break; } } listener = newTcpListener(localadd, 51888); listener.Start();privatevoid ReadCallback(IAsyncResult ar) {try {ReadWriteObject readWriteObject = (ReadWriteObject)ar.AsyncState;int count = readWriteOStream.EndRead(ar); textBoxReceive.Invoke(setTextBoxCallback,string.Format(来自{0}{1},readWriteObject.client.Client.RemoteEndPoint,System.Text.Encoding.UTF8.GetString(readWriteObject.readBytes,0,count))+/n);if (isExit == false) { readWrite
显示全部