网络课程设计报告-点对点聊天软件的实现

网络课程设计报告-点对点聊天软件的实现

ID:18504891

大小:262.50 KB

页数:15页

时间:2018-09-18

网络课程设计报告-点对点聊天软件的实现_第1页
网络课程设计报告-点对点聊天软件的实现_第2页
网络课程设计报告-点对点聊天软件的实现_第3页
网络课程设计报告-点对点聊天软件的实现_第4页
网络课程设计报告-点对点聊天软件的实现_第5页
资源描述:

《网络课程设计报告-点对点聊天软件的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机网络课程设计---基于TCP的点对点即时通信工具姓名:杨祺鹏班级:191072学号:20071000566指导老师:梁庆中一.设计题目及设计目标1.设计题目题目:实现一个基于网络的应用要求:利用TCP或UDP完成联网通信,并在此基础上完成数据应用。2.设计目标这个软件实现的功能主要包括局域网内的点对点聊天(基本功能),局域网内搜索IP并显示,搜索任意IP段并显示。应用的主要范围面向局域网。二.设计的思路1.选用语言:C#2.使用的主要技术:TcpClient,thread(线程)3.功能结构图。另一个线程启动(服务器)程序启动(客户)修改主进程控件向指

2、定IP发送消息搜索指定IP段获取本机IP监听端口三.设计的实现程序初始化程序流程图:服务器线程启动搜索指定段IP,或者搜索本地局域网IP对指定端口进行监听连接IP监听IP传输数据是否为空连接不成功不为空为空连接成功发送数据修改主进程控件关闭连接,关闭数据流关闭连接,关闭数据流用户选择继续聊天程序结束程序结束1.获取本机IP模块使用的C#的IPHOSTENTRY和IPADDRESS两个类stringhostname1=Dns.GetHostName();IPHostEntrymyentry=Dns.GetHostByName(hostname1);IPAddr

3、essmyaddress=newIPAddress(myentry.AddressList[0].Address);stringmyip=myaddress.ToString();this.localip.Text=myip;用已经获取的本机的名字来获取本机的IP。2.获取局域网IPintipdot=myip.LastIndexOf('.');myip=myip.Substring(0,ipdot+1);stringaa="0";//获取本机的IP后,获取最后一个.的位置,并且将这个.后面的数据替换成0和255,实现从局域网0-255的搜索stringbb=

4、"255";stringstartip=myip+aa;stringendip=myip+bb;this.ipstart.Text=startip;this.ipend.Text=endip;3.搜索指定IP段的IP地址对输入的IP段进行搜索,stringipcur=this.ipstart.Text;获取输入IP的最后一个点的位置,并且先设置一个变量为要添加到这个点后面的数据。intipdot=ipcur.LastIndexOf('.');stringippre=ipcur.Substring(0,ipdot+1);for(inti=0;i<=3;i++)

5、{MessageBox.Show("开始搜索");在这里定义搜索多少次,因为搜索很慢,所以暂时只搜索3次就停下了stringscanip=ippre+i.ToString();IPAddressmyscanip=IPAddress.Parse(scanip);要搜索的IP是搜索框内的IP去尾得到的,在这里添加上IP的尾端进行搜索。IPHostEntrymyscanhost=null;try{myscanhost=Dns.GetHostByAddress(myscanip);}catch判断是否可以搜索此IP{continue;}if(myscanhost.H

6、ostName!=null){MessageBox.Show("搜索到一个结果");如果可以通过IP搜索到该ip的名字,则进行添加。this.ipbox.Items.Add("可用IP:");this.ipbox.Items.Add(scanip);this.ipbox.Items.Add("此IP的主机名:");this.ipbox.Items.Add(myscanhost.HostName);}运行截图:1.在程序启动时同时启动另一个线程作为服务器C/S模式都有服务器和客户端之分,在这个程序中服务器端被简化了,服务器程序不具有主动的功能,只能对端口进行监

7、听并且修改主进程的控件。privatevoidForm1_Load(objectsender,EventArgse)在主进程LOAD的时候就启动另外一个服务器线程{Control.CheckForIllegalCrossThreadCalls=false;Threadserver=newThread(newThreadStart(serverfuntion));server.IsBackground=true;server.Start();}privatevoidserverfuntion()获取当前时间以显示连接成功的时间{DateTimedt=newDa

8、teTime();dt=DateTime.Now;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。