局域网通信设计报告.doc

上传人:ylj18****70940 文档编号:44553102 上传时间:2022-09-21 格式:DOC 页数:20 大小:266.50KB
返回 下载 相关 举报
局域网通信设计报告.doc_第1页
第1页 / 共20页
局域网通信设计报告.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《局域网通信设计报告.doc》由会员分享,可在线阅读,更多相关《局域网通信设计报告.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程设计(论文)局域网通信系统论文作者:指导老师:专 业:系 (院):答辩日期:名目摘 要1一、绪论11.1 即时通信系统的概念11.2 UDP协议11.3 开发背景11.4 运行环境21.5程序核心流程图21.6功能设计2二、 主要界面及功能的实现42.1界面设计41)主界面42)添加好友界面43)更换头像界面54)搜寻界面55)谈天界面56)修改备注界面62.2编码实现62.2.1 主程序初始化函数6监听端口方法72.2.3 添加好友方法82.2.4 删除好友9修改好友备注9修改头像9截图功能102.2.7 谈天界面初始化方法102.2.8 消息接收并显示112.2.9 图片发送以及保存方

2、法12三、软件测试13四、结论14致 谢15参考文献16摘要摘 要即时通讯软件是目前计算机用户进行沟通最普遍的方式之一,各种各样的谈天软件也层出不穷;服务供应商也供应了越来越丰富的通讯服务功能。即时通信中最基本的功能就是通过计算机之间的文本数据的互换的形式实现思想的沟通和沟通,它的优点是便利快捷,为人们之间创建了一种新型的、廉价的、快速的、简便的沟通方式。本系统是基于UDP的局域网谈天工具。从实现了面对无连接的点对点异步通信,在此基础上应用了多线程技术解决了局域网多用户间的通信问题。谈天程序以Visual Studio 2008为基本开发环境和C# 语言进行编码设计试验表明该谈天工具能够为局域

3、网内部人员供应一个很好的沟通平台,便利了工作上的沟通与协同。本课题开发了一个基于局域网内部的消息通讯平台。在此平台上可以实现内部用户之间的实时通讯,使用户之间能更准时、更便利有效的沟通信息。实现了局域网内部电子信息化的沟通,提高了工作效率。本系统有如下功能:1、信息的接受和发送功能:包括文字信息以及图像信息。2、添加好友功能:能够通过IP查找到相对应的用户以及添加其为自己的好友。3、数据本地化功能,将好友信息保存在本地.4、图片发送与接收,保存到本地功能.5、截屏功能6、更换头像功能第1章 绪论一、 绪论1.1 即时通信系统的概念即时通讯(Instant Messenger,简称IM),是指能

4、够即时发送和接收互联网消息等的业务。自1998年面世以来,特殊是近几年的快速进展,即时通讯的功能日益丰富,渐渐集成了电子邮件、博客、音乐、电视、嬉戏和搜寻等多种功能。即时通讯不再是一个单纯的谈天工具,它已经进展成集沟通、资讯、消遣、搜寻、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。是一种终端连网即时通讯网络的服务。即时通讯不同于e-mail在于它的交谈是即时的。大部分的即时通讯服务供应了状态信息的特性显示联络人名单,联络人是否在在线与能否与联络人交谈。 近年来,随着无线通信的快速进展,移动互联网为传统的Internet注入了新的活力,同时也为即时通讯带来了一场革命,交互双方已经不

5、再局限于以网络终端设备为唯一的接入手段,PC机在传统的网络即时通讯中所起的作用正在被手机、平板电脑所取代。这使得即时通讯更加大众化和人性化,即使不会使用电脑的人现在也可以享受到即时通讯给人们带来的变化。1.2 UDP协议UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是 OSI 参考模型中一种无连接的传输层协议,供应面对事务的简洁不行靠信息传送服务,IETF RFC 768是UDP的正式规范。在选择使用协议的时候,选择UDP必需要谨慎。在网络质量令人不特别满足的环境下,UDP协议数据包丢失会比较严峻。但是由于UDP的特性:它不属于连接型协议,因而具有资源

6、消耗小,处理速度快的优点,所以通常音频、视频和一般数据在传送时使用UDP较多,由于它们即使间或丢失一两个数据包,也不会对接收结果产生太大影响。比如我们谈天用的ICQ和QQ就是使用的UDP协议。1.3 开发背景在网络越来更加达的今日,人们对网络的依靠越来越多,越来越离不开网络,由此而产生的谈天工具越来越多,类似QQ、网络谈天时一类的谈天系统的进展日新月异。但是,QQ等现有的谈天程序也存在着很大的问题。比如使用QQ的时候,就对各种弹窗广告深恶痛绝。对于登陆后时不时弹出的打搅窗口,很是厌烦。因此在本次作业下产生了一个制作类似QQ的网络谈天工具并且“无垃圾信息”干净谈天工具的想法,而且盼望通过制作该程

7、序还能更好的学习网络软件编程学问。1.4 运行环境1.本系统基于Visual Studio 2008设计,适用于WINDOWS XP,WIN7,WIN8等系统。2.运行环境仅限于局域网,否则无法正常通信.3.使用C#语言开发1.5程序核心流程图如图1.1所示:接收Receive发送Send客户端1关 闭Listen监听端口Udp图1.1程序核心流程图1.6功能设计1) 自动猎取本机IP,并监听指定端口有无消息接收。2) 界面显示:将已添加好友显示在好友列表中,如有不是好友向本机发消息,将自动添加为好友。3) 谈天功能:与好友谈天。4) 好友纪录:能保存好友信息至本地,并能察看。5) 更换头像:

8、双击头像,能够更换头像显示 6) 发送图片:在谈天界面选择要发送的图片进行发送。7) 截屏:将截取整个屏幕,并且保存到指定位置。如图1.2所示: 图1.2 功能设计图 客户端截 取 屏 幕保存好友信息添删备注好友更 改 头 像接收各种信息猎取本机IP地址17第2章 主要界面及功能的实现二、 主要界面及功能的实现2.1界面设计1)主界面如图1.3所示:图1.3主界面图2)添加好友界面如图1.4所示:图1.4添加好友图3)更换头像界面如图1.5所示:图1.5更换头像界面图4)搜寻界面如图1.6所示:图1.6搜寻界面图5)谈天界面如图1.7所示:图1.7谈天界面图6)修改备注界面如图1.8所示:图1

9、.8修改备注图2.2编码实现2.2.1 主程序初始化函数改函数的主要功能为创建UDP实例,并且开启新线程监听消息收发端口,,以及从本地加载好友信息,添加至主界面的ListBox控件列表中void Form1_Load(object sender, EventArgs e) uc = new UdpClient(6959); LIPAddress.Text = getInfo.myIp(); Thread th = new Thread(new ThreadStart(listen); th.IsBackground = true; th.Start(); /-填充ListBox- loadXM

10、LList(); if (friendsList.Items.Count != 0)/选中列表第一个 friendsList.SelectedIndex = 0;2.2.2监听端口方法该方法主要功能是监听端口信息,收到消息后首先推断是否已存在该好友的谈天窗口,假如存在只发送消息到窗口,否则创建新的窗口实例,并且弹出谈天界面。还实现了生疏好友来信后自动添加信息至ListBox和本地。IPEndPoint iep; string text,text1; byte b; private void listen()/监听端口 iep = new IPEndPoint(IPAddress.Parse(g

11、etInfo.myIp(), 6959); while (true) text = ; b = uc.Receive(ref iep); text = System.Text.Encoding.UTF8.GetString(b); if (text != ) text1 = text; MethodInvoker mi = new MethodInvoker(openNewForm); BeginInvoke(mi); public void openNewForm() CommForm cf=null; if (!listIP.Contains(iep.Address.ToString()

12、Friend f = new Friend(); f.IpAddress = iep.Address.ToString(); f.NickName = ; SaveOrLoad.addNodeXML(f); loadXMLList(); if (listForm.Count = 0) cf = new CommForm(listFriend, iep.Address.ToString(),listIP); cf.Name = iep.Address.ToString(); cf.rMessage(text1, iep.Address.ToString(),b); cf.Show(); list

13、Form.Add(cf); else foreach (CommForm f in listForm) if (f.Name = iep.Address.ToString() f.rMessage(text1, iep.Address.ToString(),b); else cf = new CommForm(listFriend, iep.Address.ToString(), listIP); cf.Name = iep.Address.ToString(); cf.rMessage(text1, iep.Address.ToString(),b); cf.Show(); listForm

14、.Add(cf); 2.2.3 添加好友方法该方法实现的功能为 单击主界面的添加好友按钮,弹出添加好友对话框,输入对面IP后点击确定返回IP,并添加至本地和ListBox控件。private void button2_Click(object sender, EventArgs e) AddFriendForm aff = new AddFriendForm(); if (aff.ShowDialog() = DialogResult.OK) if (!listIP.Contains(aff.IpAdd) Friend f = new Friend(); f.IpAddress = aff.I

15、pAdd; f.NickName = ; SaveOrLoad.addNodeXML(f); friendsList.Items.Add(aff.IpAdd);/列表添加 loadXMLList(); else MessageBox.Show(已存在); 2.2.4 删除好友该方法实现的功能为右击ListBox控件弹出右键菜单,单击后删除好友。private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) if (friendsList.SelectedIndex != -1) SaveOrLoad.DelNodeXML(f

16、riendsList.SelectedIndex); friendsList.Items.Remove(friendsList.SelectedItem.ToString(); loadXMLList(); else MessageBox.Show(没有选择任何项); 2.2.5修改好友备注该方法实现的功能为右击ListBox控件弹出右键菜单,单击后弹出修改对话框输入后返回输入信息。private void 备注ToolStripMenuItem_Click(object sender, EventArgs e) if (friendsList.SelectedIndex != -1) Cha

17、ngeNameForm aff = new ChangeNameForm(); if (aff.ShowDialog() = DialogResult.OK) SaveOrLoad.UpdateNodeXML(friendsList.SelectedIndex, aff.ChangeName); friendsList.ItemsfriendsList.SelectedIndex= aff.ChangeName; loadXMLList(); else MessageBox.Show(没有选择任何项); 2.2.6修改头像该方法主要实现了双击主界面的头像,弹出头像选择窗体,单击喜爱的头像后,实

18、现头像的修改。private void pictureBox1_DoubleClick(object sender, EventArgs e) TouxForm tf = new TouxForm(); if (tf.ShowDialog() = DialogResult.OK) pictureBox1.Image = tf.ImagePath; 2.2.7截图功能该方法主要实现电机主界面截图按钮,实现全屏截图,然后保存至本地。private void button3_Click(object sender, EventArgs e) this.Visible = false; System.

19、Threading.Thread.Sleep(200); Bitmap bit = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.FromImage(bit); g.CopyFromScreen(new Point(0, 0), new Point(0, 0), bit.Size); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter

20、 = bmp|*.bmp|jpg|*.jpg|gif|*.gif; if (saveFileDialog.ShowDialog() != DialogResult.Cancel) bit.Save(saveFileDialog.FileName); g.Dispose(); this.Visible = true; 2.2.7 谈天界面初始化方法这几个函数主要实现了UPD的初始化,接收来源好友的信息,推断是否已经备注打算窗体标题的显示,假如没有备注显示对方IP否则显示对方备注。public CommForm(List listFriend, string ips, List listIP) I

21、nitializeComponent(); ip = ips; uc = new UdpClient(); this.listFriend = listFriend; this.listIP = listIP; this.Load += new EventHandler(CommForm_Load2); void CommForm_Load2(object sender, EventArgs e) if (listIP.Contains(ip) int i=listIP.IndexOf(ip); if (listFriendi.NickName = ) this.Text = ip; else

22、 this.Text = listFriendi.NickName + - + ip; public CommForm(List listFriend, int selectIndex) InitializeComponent(); uc = new UdpClient(); this.listFriend = listFriend; this.selectIndex=selectIndex; this.Load += new EventHandler(CommForm_Load); void CommForm_Load(object sender, EventArgs e) if (list

23、FriendselectIndex.NickName = ) ip = this.Text; else ip = listFriendselectIndex.IpAddress; this.Text+= - +ip; 2.2.8 消息接收并显示该方法主要将收到的消息以及要发送的消息显示到谈天界面的TextBox中。public void rMessage(string message, string name, byte b) if (b.Length 100) ByteArrayToImage(b, b.Length); else DateTime dt = DateTime.Now; me

24、ss.Text += dt.Month + / + dt.Day + + dt.Hour + : + dt.Minute + + name + rnrn; mess.Text += message + rnrn; mess.SelectionStart = mess.Text.Length; mess.ScrollToCaret(); 2.2.9 图片发送以及保存方法这几个方法主要实现了将收到的二进制图片数据通过ByteArrayToImage()方法转换为图片数据,并且显示到PictureBox控件中同时可以按保存按钮将接收到的图片保存到本地。public void ByteArrayToI

25、mage(byte byteArrayIn, int count) MemoryStream ms = new MemoryStream(byteArrayIn, 0, byteArrayIn.Length); Image returnImage = Image.FromStream(ms); this.pictureBox1.Image = returnImage; btnSave.Visible = true; string path; private void button3_Click(object sender, EventArgs e) OpenFileDialog open =

26、new OpenFileDialog(); open.Filter = jpg|*.jpg|gif|*.gif; if (open.ShowDialog() != DialogResult.Cancel) pictureBox1.Image = Image.FromFile(open.FileName); path = open.FileName; button4.Visible = true; private void button4_Click(object sender, EventArgs e) IPEndPoint iep = new IPEndPoint(IPAddress.Par

27、se(ip), 6959); FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader binaryReader = new BinaryReader(fileStream); byte img = binaryReader.ReadBytes(int)fileStream.Length); binaryReader.Close(); fileStream.Close(); /发送信息 try uc.Send(img, img.Length, iep); catch(Ex

28、ception ex) MessageBox.Show(文件过大); private void btnSave_Click(object sender, EventArgs e) SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = bmp|*.bmp|jpg|*.jpg|gif|*.gif; if (saveFileDialog.ShowDialog() != DialogResult.Cancel) pictureBox1.Image.Save(saveFileDialog.FileNam

29、e); 第3章 软件测试三、软件测试软件测试是程序的一种执行过程,目的是尽可能发觉并改正被测试软件中的错误,提高软件的牢靠性。它是软件生命周期中一项特别重要且特别简单的工作,对软件牢靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还无望成为有用性方法的状况下,软件测试在将来相当一段时间内仍旧是软件牢靠性保证的有效方法。软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成软件开发项目。不足的测试势必使软件带着一些未揭露的隐蔽错误投入运行,这将意味着更大的危急让用户担当。通过自己在自己机器上通过多个进程的测试和通过两台机器联机测试,本程序完全实现了概要设计和具体设计

30、的各种功能,满足了提出的各种要求。但是,测试期间也发觉了不少问题,而且这些问题中有些以我们现在的水平还无法解决,只能说是测试是否能够通过程序验证。所以,对于本程序中的问题,还要通过在以后的学习中解决。由于时间和自己的力量有限,该系统还有很多不足和需要改善的地方。如:好友在线时才能发送消息和文件,界面还不够美观,功能还不完全等等, 还不能像飞鸽这种局域网通讯软件一样胜利,需要更加丰富的阅历和更多学问技能和更多的时间与精力去完善。对于本系统的展望:该系统还有很多可以改进的地方,盼望以后有时间和力量去改进。比如:转变谈天字体的大小和字体、发送表情、增加截图功能、发送抖动窗体,视频与语音功能、远程帮助

31、等功能。四、结论经过几天的课程设计,即时局域网通讯系统最终完成了。本文在对相关理论学问的基础上设计了一个基于UDP协议的即时通讯系统,分析系统的工作流程,并应用.NET平台具体实现了一些基本的功能,如:即时谈天、添加好友和分组、删除好友和分组、图片传输等。本系统功能虽简洁,但目的的了解基于.NET的窗体应用程序的开发过程,假如要完善系统还需更多的时间。课程设计的过程是一个学习与讨论的过程,而且,我深刻地熟识到假如在实践中学习与讨论,所学习的学问和技能就会更扎实。我使用.NET为开发平台,Socket等相关技术完成系统,虽然系统已基本完成,但我对于.NET的核心技术和高级编程还是很生疏,不能娴熟

32、运用,对于C#语言也不是很熟识,这是我以后需解决的问题。在此次的毕业设计中,我深深地体会到进行软件开发不是一件简洁的事情,它需要开发者具备全面的专业学问、严谨的工作态度、缜密的思维以及较高的分析问题、解决问题的力量,而我在很多方面还有欠缺。总之,我以后要多用心讨论软件开发,以更加饱满的热忱投入到本专业的学习中去,仔细做好每一件事情,争取得到更多的收获。通过这次用C#设计的新闻发布系统,我也明白了很多整理。它使我懂得了理论与实际的相结合是很重要的,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手力量和独立思索的力量。课程

33、设计是对以前学过的理论学问的回顾同时也是进一步的消化和巩固的过程。毕业设计培育了严厉仔细和实事求是的科学态度,也培育了吃苦耐劳的精神以及相对应的工程意识,同学之间的友情互助也充分的在毕业设计当中体现出来了。但是由于课程设计时间较短,所以该系统还有很多不尽如人意的地方,比如功能不太完善,用户界面不够美观,还有很多不足的地方。这些都有待进一步的改善。这次毕业设计基本完成预定目标,在这次毕业设计中我学到了新的学问,也提高了我的动手力量,分析和解决问题的力量。致谢致 谢在本次毕业设计中,我特别感谢曾经为我订正错误及指导我的人。尤其是我的指导老师,我从指导老师梁老师身上也学到了很多东西。老师那严谨教学的

34、工作态度、治学精神和深厚的理论水平都使我受益匪浅。她平常工作特别忙,但还是常常抽时间向我们询问有关毕业设计的问题,在系统的制作过程中她赐予了我很多的指导,使我得到不少的提高,通过梁老师对我悉心的指导,使我的设计更加完善,最重要的是激励我对待任何事情都要乐观、仔细的态度。我想这些对我在今后正式的走进社会中会有很大影响和关心。参考文献参考文献1ASP.NET网络程序设计教程.北京:人民邮电出版社,出版2012年2月2C#.NET程序设计项目教程.中国铁道出版社,出版2008年9月3SQL Server 2008应用实践教程.北京:电子工业出版社,出版2010年5月4SQL Server 2008数据库有用教程.北京:电子工业出版社,出版2010年2月5九州书源.SQL Server 数据库管理与应用.第2版.北京:清华高校出版社,出版2011年12月6李晓静.Photoshop图形图像处理.北京:清华高校出版社,出版2011年8月7周苏峡,李建利.Web数据库应用实例教程 .北京交通高校出版社,出版2008年7月8Nicholas C.Zakas.JavaScript高级程序设计.第3版.李松峰,曹力译.人民邮电出版社,出版2012年3月

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁