网络课程设计方案报告点对点聊天软件实现.docx

网络课程设计方案报告点对点聊天软件实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络课程设计 ---基于TCP的点对点即时通信工具 姓名:杨祺鹏 班级:191072 学号:20071000566 指导老师:梁庆中 设计题目及设计目标 设计题目.1 题目:实现一个基于网络的应用 要求:利用TCP或UDP完成联网通信,并在此基础上完成 数据应用。 设计目标.2 这个软件实现的功能主要包括局域网内的点对点聊天 <基本 功能),局域网内搜索 IP并显示,搜索任意IP段并显示。 应用的主要范围面向局域网。 设计的思路 选用语言:C# 使用的主要技术: TcpClient,thread(线程> 功能结构图。 设计的实现 程序流程图: 1.获取本机IP模块 使用的 C#的 IPHOSTENTRY口 IPADDRES两个类 string hostnamel = DnsGetHostName(。 IPHostEntry myentry = Dns.GetHostByName(hostname1。 IPAddress myaddress = newIPAddress (myentry.AddressList[O].Address 。 string myip = myaddress.ToString( 。 this」ocalip.Text = myip 。 用已经获取的本机的名字来获取本机的IP。 2.获取局域网IP int ipdot = myip.LastlndexOf( . 。 myip = myip.Substring(0,ipdot+1 。 string aa = 0。//获取本机的IP后,获取最后一个.的位置,并且将这个.后面的数据替换成0和 255,实现从局域网0-255的搜索 string bb = 255。 string startip = myip + aa 。 string endip = myip + bb 。 this .ipstart.Text = startip 。 this .ipend.Text = endip 。 3.搜索指定IP段的IP地址 对输入的IP段进行搜索, 获取输入IP的 最后一个点的位 置,并且先设置 一个变量为要添 加到这个点后面 的数据。string ipcur = this .ipstart.Text 。 int ipdot = ipcur.LastlndexOf( . 获取输入IP的 最后一个点的位 置,并且先设置 一个变量为要添 加到这个点后面 的数据。 string ippre = ipcur.Substring(0,ipdot+1 for ( int i = 0 。 i = 3 。i++ { MessageBoShow(开始搜索。 stri n在5这^里= Ad定es义 I搜sca nip = FHogB多y 少my 次 为 很 所 时 catchy try co ppre + i.ToString( 。 IPAddress .Parse(scanip scanhost = null 。 要搜索的IP是搜索框内的IP去 尾得到的,在这里添加上 IP的 尾端进行搜索。 I 乂 ? 以 myscanhost = 只搜 3次 停下 了e。 就 nti DnsGetHostByAddress(myscanip 。 判断是否可以搜索此 IP 如果可以通过 如果可以通过 IP 搜索到该ip的名 字,则进行添 加。 } if (myscanhost.HostName != null { MessageBoxShow(搜索到一个结果。 this .ipbox.ltems.Add( 可用 IP : 。 this .ipbox」tems.Add(scanip 。 this .ipbox.ltems.Add( 此 IP 的主机名: this .ipbox.ltems.Add(myscanhost.HostName } 运行截图: 4.在程序启动时同时启动另一个线程作为服务器 C/S模式都有服务器和客户端之分,在这个程序中服务器端被简 化了,服务器程序不具有主动的功能,只能对端口进行监听并且 修改主进程的控件 privatevoid Form1_Load( object sender, EventArgs e { Cont⑹.CheckForlllegalCrossThreadCalls = false。 Thread server = neWThread (newThreadStart (serverfuntion server.lsBackground = true 在主进程 LOAD的时 候就启动另 外一个服务 器线程 server.Start( 。 } privatevoid serverfuntion( 获取当前时间以 显示连接成功的时间{ 获取当前时间以 显 示连

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档