使用VB设计方案聊天室-多点对多点网络程序设计方案_第1页
使用VB设计方案聊天室-多点对多点网络程序设计方案_第2页
使用VB设计方案聊天室-多点对多点网络程序设计方案_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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提供了大量的控件, 这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择

3、。在Visual Basic中,可通过属性、方法和事件来说明和衡量一个对象的特 征:事件(Eve nt)事件是指发生在某一对象上的事情。 事件又可分为鼠标事件和键盘事件。例如,在命令按钮(Comma nd Butt on )这一对象上可能发生鼠标单击(Click )、 鼠标移动(Mouse Move )、鼠标按下(Mouse Down )等鼠标事件,也可能发生 键盘按下(Key Down )等键盘事件。总之,事件指明了对象 什么情况下做? 常用于定义对象发生某种反映的时机和条件。方法(Method )方法是用来控制对象的功能及操作的内部程序。例如,人具有说话、行走、 学习、睡觉等功能,在vis

4、ual Basic中,对象所能提供的这些功能和操作,就称 作方法”以窗体为例,它具有显示(show )或隐藏(hide )的方法。总之,方 法指明了对象 能做什么? ”常用于定义对象的功能和操作。属性(Property )属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标。可以 通过属性改变对象的特性。有些属性可以在设计时通过属性窗口来设置, 不用编写任何代码;而有些属 性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置 取值的属性成为读写属性,只能读取的属性成为只读属性。总之属性指明了对象 是什么样的? ”常用于定义对象的外观。如同上面的内容所描述的,不论您使用

5、 UDP协议或是TCP议,Win sock控 件都可以允许与远程的设备连接, 并且在相互之间交换数据。因此,依据上面的 面熟而言,不论您使用的是哪一种协议都可以扮演主机端和客户端的角色。同时,当您在使用 Win sock控件的过程中,这个控件不会显示在正在执行的 窗体之中。换句话说,Win sock控件是在后台运行的一种控件。 在执行过程之中, 不会具有任何选用、可见的控件。那么该如何使用 Win sock控件呢?它可以被应 用在那些类型的应用程序之中呢?以下所列出的内容, 是这个控件可以应用的大 致范围:*将客户端所收集的数据,传送给主机端。*聊天和文件传输室应用程序。*电子公告栏。*voi

6、p ( voice over TCP/ip )VB win sock 介绍Win sock是Mcrosoft wi ndows提供的网络编程接口 ,它供了基于TCP/IP协议接口实现方法通过网络进行的数据通信,需要用地址来表示网络中的主机.TCP/IP协议使用IP地址来作为主机的标识.实现的连接方式是通过IP地址来识别的.通常情况下每台设备运行的不止一个程序,所以为了使用应用程序间 的连接,还需要建立一个地址标识.在TCP/IP中使用端口来作为标识号(PORT).IP地址+端口地址.TCP:实现提供双向,有序无从复的数据流服务,流量控制+差错检测+纠错等 功能.1. VB控件win sock是

7、个运行中不可件的控件,常用属性如下:byte received接收到的字节数local host name 本地机器名Local IP 本地IP地址Local port本地通信程序的端口Remote host远程机器名Remote host IP 远程 IP 地址Remote port远程通信程序端口Socket handle 提供调用API得句柄参数State连接得当前状态Protocol 使用协议Bytereceived :反应接收到得数据量,以字节为单位。State:返回当前连接状态0关闭状态1打开状态2监听状态3连接挂起4解析域名5正在连接6以建立连接7正在关闭8出错2. 控件acce

8、pt接受一个连接请求。格式:对象.accept request IDbind :多协议接口下,把接口卡,IP地址捆绑再一起。格式:对象。Bina端口 号,ip地址close :关闭连接。格式:对象。 Closeconnect :发送连接请求。格式:对象。 Connectip,远程端口 getdata :取出数据后清除缓冲区。Peekdata :取出数据后不清楚缓冲区。格式:对象。 Getdata ( peekdata )变量 ,数据类型,最大长度Listen :侦听。格式:对象。ListenSen ddata :发送数据。格式:对象。 Sen ddata3 控件事件Close远程设备关闭连接时

9、触发事件Connect建立连接,进行通信时触发Conn ectrequest有连接请求时触发Data arrival有数据到达时触发Error错误时触发Send complete完成一次数据传送触发Send progress 数据传送进度四、设计内容1、设计框架图1建立连接图2消息文件交互2、设计程序Opti on Explicit/强制声明变量Private Sub Comma nd1_Click()If tcp.State = 7 And Text2.Text <> "" Then/win sock=7表示已连接tcp.Se ndData Text2.Tex

10、t/发送数据Textl.Text = Textl.Text & ”本机:"& Text2.Text & vbCrLf/显示自己发送的信息,换行显示Text2.Text =""/文本清空Text2.SetFocus/设置焦点服务端:End IfEnd SubPrivate Sub Comma nd2_Click()Dim Form2 As New Form2/Form2.Show/定义数据传输窗口 显示数据传输窗口End SubPrivate Sub Form_Load() tcp.LocalPort = 8888 tcp.Liste nEn

11、d Sub/本地监听端口为8888 开始监听Private Sub tcp_Co nn ectio nRequest(ByVal requestID As Lon g) /连接请求If tcp.State <> 0 The n tcp.Close /如果不是关闭状态,关闭跳tcp.Accept requested/接收请求 IDEnd SubDim strdata As Stri ng tcp.GetData strdata Textl.Text = Textl.Text & ”/定义字符串型/获取数据传递给变量strdata客户端:"& strdata

12、& vbCrLf发送过来的信息,换行显示Private Sub tcp_DataArrival(ByVal bytesTotal As Lon g) /对方数据到达End Sub图3编辑服务端主窗口客户端:/强制声明变量Optio n ExplicitPrivate Sub Comma nd2_Click() Dim Form2 As New Form2 Form2.Show/定义数据传输窗口 显示数据传输窗口Private Sub Comma nd1_Click()If tcp.State = 7 And Text2.Text <> "" The n

13、/win sock=7表示已连接tcp.Se ndData Text2.Text/发送数据Textl.Text = Textl.Text & " 本机:"& Text2.Text & vbCrLf/显示自己发送的信息,换行显示Text2.Text =""/文本清空Text2.SetFocus/设置焦点End IfEnd SubEnd SubPrivate Sub tcp_DataArrival(ByVal bytesTotal As Long)Dim strdata As Stringtcp.GetData strdataText

14、1.Text = Text1.Text & ”/定义strdata为字符串/接收数据服务端:"& strdata & vbCrLf在文本框显示消息,换行显示End SubPrivate Sub zyq2_Click()Dim p, myip As Stri ng/p = InputBox(" 输入对方的端口 ")/myip = InputBox(" 输入对方的 IP") / tcp.RemotePort = p/tcp.RemoteHost = myip/tcp.C onnect/定义p,myip为字符串输入端口号输入I

15、P设置端口设置IP连接End Sub消息发谊:交件鹫输-图4编辑客户端主窗口传输窗口(服务端):Opti on ExplicitPrivate Sub cmdSe nd_Click()Dim FName_ On ly As Stri ngIf txtFileName = "" The nMsgBox "你没有选择要发送的文件",vbCriticalElse If frmServer.tcpServer.State <> sckClosed The nFName_O nly$ = GetFileName(txtFileName)Sen dFil

16、e FName_ On ly$End IfEnd IfEnd Sub主要作用:发送用户选择的文件。Private Sub Form_Load()tcpServer.LocalPort = PorttcpServer.Liste nbinconnection = FalseStatus " 侦察.( 没有连接)"End Sub主要作用:设置连接端口并侦察网络。Private Sub Form_Unl oad(Ca ncel As In teger)SendData "服务器关闭,"Pause 500tcpServer.CloseEndEnd SubPriv

17、ate Sub tcpServer_Close()If tcpServer.State <> sckClosed The n tcpServer.CloseForm_LoadEnd SubPrivate Sub tcpServer_C onn ecti on Request(ByVal requestID As Long) On Error GoTo IDERRORIf tcpServer.State <> sckClosed The n tcpServer.Close tcpServer.Accept requestIDbinconnection = TrueStat

18、us " 侦察连接."Sen dData "Accepted,"Exit SubIDERROR:MsgBox Err.Descripti on, vbCriticalEnd Sub主要作用:判断是否接收信息。Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)Dim Comma nd As Stri ngDim NewArrival As Stri ngDim DataAs Stri ngStatic DataC nt As LongtcpServer.GetData NewArrival

19、$, vbStri ngComma nd = EvalData(NewArrival$, 1)Data$ = EvalData(NewArrival$, 2)Select Case Comma nd$Case "OpenFile" ' open the fileDim Fn ame As Stri ngFn ame$ = App.Path & "" & Data$Ope n Fn ame$ For Bin ary As #1Status "文件打开."& Data$Case "CloseFil

20、e" ' close the fileClose #1Status "文件传输."Pause 3000Status "侦察(连接)"Case Else ' a 4169 byte stri ng of incoming dataPut #1, , NewArrival$ txtView = txtView & NewArrival$DataC nt& = DataC nt& + 1Status"Recievi ng Data. " & (MAX_CHUNKDataC nt&am

21、p;) & " bytes"End SelectEnd Sub主要作用:文件传输。Private Sub cmdBrowse_Click()cdOpe n. ShowOpe nIf Not vbCa ncel The ntxtFileName = cdOpe n. FileNameEnd IfEnd Sub主要作用:通过通用对话框打开需要传送的文件。图5编辑服务端文件传输窗口传输窗口(客户端):Private Sub cmdCo nn ect_Click()bReplied = FalsetcpCIie nt.Co nnect Text1.Text, 1256lTI

22、me = 0While (Not bReplied) And (lTIme < 100000)DoEve ntslTIme = lTIme + 1WendIf lTIme >= 100000 The nMsgBox "找不到服务器! ", vbCritical, "Co nn ection Error"tcpClie nt.CloseExit SubEnd IfcmdBrowse.Visible = TruecmdSe nd.Visible = TrueEnd Sub主要作用:实现与服务器的连接Private Sub cmdSe nd_Cli

23、ck()Dim FName_ On ly As Stri ngIf txtFileName = "" The nMsgBox "你没有选择要发送的文件",vbCriticalElse If tcpClie nt.State <> sckClosed The nFName_O nly$ = GetFileName(txtFileName)Sen dFile FName_ On ly$End IfEnd IfEnd Sub主要作用:发送文件。Private Sub tcpClie nt_DataArrival(ByVal bytesTotal As Long)Dim Comma nd As Stri ngDim NewArrival As Stri ngDim Data As Stri ngStatic DataC nt As LongtcpClie nt.GetData NewArrival$, vbStri ngComma nd$ = EvalData(NewArrival$, 1)Data$ = EvalData(NewArrival$, 2)Select C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论