版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书9. 多点对多点网络程序设计 ,根据网络数据传输原理设计聊天室软件,具体要求:1) 学习计算机网络连接原理;2) 学习网络数据传输的基本原理;3) 学习网络连接的底层协议;4) 设计聊天室软件;5) 面向用户的操作界面;6) 具有文件共享功能。目录一、设计目的1二、设计任务与要求1三、开发软件介绍1四、设计内容41、设计框架42、设计程序53、运行结果12五、设计总结15六、设计心得16七、参考文献16一、设计目的通过本课程设计的学习, 学生将复习所学的专业知识, 使课堂学习的理论知识应用于实践, 通过本课程设计的实践使学生具有一定的实践操作能力,为学生完成毕业设计任务打下基础。
2、二、设计任务与要求多点对多点网络程序设计,根据网络数据传输原理设计聊天室软件,具体要求:1) 学习计算机网络连接原理;2) 学习网络数据传输的基本原理;3) 学习网络连接的底层协议;4) 设计聊天室软件;5) 面向用户的操作界面;6) 具有文件共享功能。三、开发软件介绍微软公司的 Visual Basic 6.0 是 Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。 Visual Basic 提供了大量的控件,这些控件可用于设计界面和实现各种功能, 减少了编程人员的工作量, 也简化了界面设计过程, 从而有效的提高了应用程序的运行效率和可靠性。 故而,实现本系统
3、VB是一个相对较好的选择。在 Visual Basic 中,可通过 属性、方法和事件来说明和衡量一个对象的特征:事件( Event )事件是指发生在某一对象上的事情。 事件又可分为鼠标事件和键盘事件。 例如,在命令按钮( Command Button )这一对象上可能发生鼠标单击( Click )、鼠标移动( Mouse Move )、鼠标按下( Mouse Down )等鼠标事件,也可能发生键盘按下( Key Down )等键盘事件。总之,事件指明了对象 “什么情况下做? ”,常用于定义对象发生某种反映的时机和条件。方法( Method )方法是用来控制对象的功能及操作的内部程序。例如,人具
4、有说话、行走、学习、睡觉等功能,在 visual Basic 中,对象所能提供的这些功能和操作,就称作 “方法 ”。以窗体为例,它具有显示( show )或隐藏( hide )的方法。总之,方法指明了对象 “能做什么? ”,常用于定义对象的功能和操作。属性( Property )属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标。可以通过属性改变对象的特性。有些属性可以在设计时通过属性窗口来设置, 不用编写任何代码; 而有些属性则必须通过编写代码, 在运行程序的同时进行设置。 可以在运行时读取和设置取值的属性成为读写属性, 只能读取的属性成为只读属性。 总之属性指明了对象“是什么样的
5、? ”,常用于定义对象的外观。如同上面的内容所描述的,不论您使用 UDP协议或是 TCP协议, Winsock 控件都可以允许与远程的设备连接, 并且在相互之间交换数据。 因此,依据上面的面熟而言,不论您使用的是哪一种协议都可以扮演主机端和客户端的角色。同时,当您在使用 Winsock 控件的过程中, 这个控件不会显示在正在执行的窗体之中。换句话说, Winsock 控件是在后台运行的一种控件。 在执行过程之中,不会具有任何选用、 可见的控件。那么该如何使用 Winsock 控件呢?它可以被应用在那些类型的应用程序之中呢?以下所列出的内容, 是这个控件可以应用的大致范围:* 将客户端所收集的数
6、据,传送给主机端。* 聊天和文件传输室应用程序。* 电子公告栏。*voip ( voice over TCP/ip)VB winsock 介绍Winsock 是 Mcrosoft windows提供的网络编程接口 , 它供了基于 TCP/IP 协议接口实现方法 . 通过网络进行的数据通信, 需要用地址来表示网络中的主机 .TCP/IP 协议使用 IP 地址来作为主机的标识 . 实现的连接方式是通过 IP 地址来识别的 . 通常情况下每台设备运行的不止一个程序 , 所以为了使用应用程序间的连接 , 还需要建立一个地址标识 . 在 TCP/IP 中使用端口来作为标识号(PORT).IP 地址 +端
7、口地址 .TCP:实现提供双向 , 有序无从复的数据流服务, 流量控制 +差错检测 +纠错等功能 .1.VB 控件 winsock 是个运行中不可件的控件, 常用属性如下 :byte received接收到的字节数local hostname 本地机器名Local IP 本地 IP 地址Local port本地通信程序的端口Remote host远程机器名Remote host IP 远程 IP 地址Remote port远程通信程序端口Socket handle 提供调用 API 得句柄参数State 连接得当前状态Protocol 使用协议Bytereceived:反应接收到得数据量,以字
8、节为单位。State: 返回当前连接状态0关闭状态1打开状态2监听状态3连接挂起4解析域名5正在连接6以建立连接7正在关闭8出错2. 控件accept 接受一个连接请求。格式:对象.accept request IDbind :多协议接口下,把接口卡,IP 地址捆绑再一起。格式:对象。号, ip 地址Bina端口close :关闭连接。格式:对象。Closeconnect :发送连接请求。格式:对象。Connectip ,远程端口getdata :取出数据后清除缓冲区。Peekdata :取出数据后不清楚缓冲区。格式:对象。Getdata (peekdata )变量,数据类型,最大长度List
9、en :侦听。格式:对象。 ListenSenddata:发送数据。格式:对象。Senddata3控件事件Close 远程设备关闭连接时触发事件Connect 建立连接,进行通信时触发Connectrequest有连接请求时触发Data arrival有数据到达时触发Error错误时触发Send complete完成一次数据传送触发Send progress数据传送进度四、设计内容1、设计框架客户端消息发送客服连接端口户务端端文件传输连接 IP服务端图 2消息文件交互图 1 建立连接2、设计程序服务端:Option Explicit/强制声明变量Private Sub Command1_Cli
10、ck()If tcp.State = 7 And Text2.Text Then /winsock=7表示已连接tcp.SendData Text2.Text/发送数据Text1.Text = Text1.Text & 本机: & Text2.Text & vbCrLf/显示自己发送的信息,换行显示Text2.Text = /文本清空Text2.SetFocus/设置焦点End IfEnd SubPrivate Sub Command2_Click()Dim Form2 As New Form2/定义数据传输窗口Form2.Show/显示数据传输窗口End SubPrivate Sub For
11、m_Load()tcp.LocalPort = 8888tcp.ListenEnd Sub/本地监听端口为8888/开始监听Private Sub tcp_ConnectionRequest(ByVal requestID As Long) /连接请求If tcp.State 0 Then tcp.Close/如果不是关闭状态,关闭跳tcp.Accept requested/接收请求 IDEnd SubPrivate Sub tcp_DataArrival(ByVal bytesTotal As Long) /对方数据到达Dim strdata As String/定义字符串型tcp.GetD
12、ata strdata/获取数据传递给变量strdataText1.Text = Text1.Text & 客户端: & strdata & vbCrLf/发送过来的信息,换行显示End Sub图 3 编辑服务端主窗口客户端:Option Explicit/强制声明变量Private Sub Command1_Click()If tcp.State = 7 And Text2.Text Then/winsock=7表示已连接tcp.SendData Text2.Text/发送数据Text1.Text = Text1.Text & 本机: & Text2.Text & vbCrLf/显示自己发送
13、的信息,换行显示Text2.Text = /文本清空Text2.SetFocus/设置焦点End IfEnd SubPrivate Sub Command2_Click()Dim Form2 As New Form2/定义数据传输窗口Form2.Show/显示数据传输窗口End SubPrivate Sub tcp_DataArrival(ByVal bytesTotal As Long)Dim strdata As String/定义 strdata为字符串tcp.GetData strdata/接收数据Text1.Text = Text1.Text & 服务端: & strdata & v
14、bCrLf/在文本框显示消息,换行显示End SubPrivate Sub zyq2_Click()Dim p, myip As String/定义 p,myip为字符串p = InputBox( 输入对方的端口 )/输入端口号myip = InputBox( 输入对方的 IP)/输入 IPtcp.RemotePort = p/设置端口tcp.RemoteHost = myip/设置 IPtcp.Connect/连接End Sub图 4 编辑客户端主窗口传输窗口(服务端):Option ExplicitPrivate Sub cmdSend_Click()Dim FName_Only As S
15、tringIf txtFileName = ThenMsgBox 你没有选择要发送的文件 ., vbCritical Else If frmServer.tcpServer.State sckClosed ThenFName_Only$ = GetFileName(txtFileName)SendFile FName_Only$End IfEnd IfEnd Sub主要作用:发送用户选择的文件。Private Sub Form_Load()tcpServer.LocalPort = PorttcpServer.ListenbInconnection = FalseStatus 侦察 . (没有
16、连接 )End Sub主要作用:设置连接端口并侦察网络。Private Sub Form_Unload(Cancel As Integer)SendData 服务器关闭 ,Pause 500tcpServer.CloseEndEnd SubPrivate Sub tcpServer_Close()If tcpServer.State sckClosed Then tcpServer.Close Form_LoadEnd SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long)On Error GoTo IDERROR
17、If tcpServer.State sckClosed Then tcpServer.Close tcpServer.Accept requestIDbInconnection = TrueStatus 侦察 .连接 .SendData Accepted,Exit SubIDERROR:MsgBox Err.Description, vbCriticalEnd Sub主要作用:判断是否接收信息。Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)Dim CommandAs StringDim NewArrivalAs Stri
18、ngDim DataAs StringStatic DataCntAs LongtcpServer.GetData NewArrival$, vbStringCommand = EvalData(NewArrival$, 1)Data$ = EvalData(NewArrival$, 2)Select Case Command$Case OpenFile open the fileDim Fname As StringFname$ = App.Path & & Data$Open Fname$ For Binary As #1Status 文件打开 . & Data$Case CloseFil
19、e close the fileClose #1Status 文件传输 .Pause 3000Status 侦察 . (连接 )Case Else a 4169 byte string of incoming dataPut #1, , NewArrival$txtView = txtView & NewArrival$DataCnt& = DataCnt& + 1StatusRecievingData. & (MAX_CHUNK*DataCnt&) & bytesEnd SelectEnd Sub主要作用:文件传输。Private Sub cmdBrowse_Click()cdOpen.Sh
20、owOpenIf Not vbCancel ThentxtFileName = cdOpen.FileNameEnd IfEnd Sub主要作用:通过通用对话框打开需要传送的文件。图 5编辑服务端文件传输窗口传输窗口(客户端):Private Sub cmdConnect_Click()bReplied = FalsetcpClient.Connect Text1.Text, 1256lTIme = 0While (Not bReplied) And (lTIme = 100000 ThenMsgBox 找不到服务器! , vbCritical, Connection ErrortcpClie
21、nt.CloseExit SubEnd IfcmdBrowse.Visible = TruecmdSend.Visible = TrueEnd Sub主要作用:实现与服务器的连接。Private Sub cmdSend_Click()Dim FName_Only As StringIf txtFileName = ThenMsgBox 你没有选择要发送的文件 ., vbCritical Else If tcpClient.State sckClosed ThenFName_Only$ = GetFileName(txtFileName)SendFile FName_Only$End IfEnd IfEnd Sub主要作用:发送文件。Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)Dim Comman
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度石英砂信用保证与销售合同
- 二零二五年度农村自建房买卖定金合同范本3篇
- 二零二五年度房屋抵押贷款再担保服务合同3篇
- 二零二五年度家政服务人员权益保障三方合同范本3篇
- 二零二五年度教师职务晋升劳动合同范本3篇
- 二零二五年度文化创意门面租赁与艺术展览合作合同3篇
- 2025年度海上油轮保险合同范本发布3篇
- 海南卫生健康职业学院《西医外科学医学免疫学与病原生物学》2023-2024学年第一学期期末试卷
- 螃蟹涂鸦课程设计
- 二零二五年度二手房购置纠纷调解服务合同
- 20S121生活热水加热机组(热水机组选用与安装)
- 酒泉市嘉瑞矿业有限公司甘肃省玉门市榆树沟山地区金矿矿产资源开发与恢复治理方案
- 2024年宜春职业技术学院单招职业适应性测试题库及答案解析
- 口腔正畸健康知识讲座
- 冻榴莲行业分析
- 2022年高考英语真题分类汇编-七选五(真题+答案解析)
- 工程热力学英文双语版
- 谈谈微电影创作课件
- DRG付费常见九大问题答疑
- 中科院2022年物理化学(甲)考研真题(含答案)
- 《热电阻温度传感器》课件
评论
0/150
提交评论