使用VB设计聊天室-多点对多点网络程序设计.doc

上传人:scccc 文档编号:11385836 上传时间:2021-08-01 格式:DOC 页数:15 大小:211KB
返回 下载 相关 举报
使用VB设计聊天室-多点对多点网络程序设计.doc_第1页
第1页 / 共15页
使用VB设计聊天室-多点对多点网络程序设计.doc_第2页
第2页 / 共15页
使用VB设计聊天室-多点对多点网络程序设计.doc_第3页
第3页 / 共15页
使用VB设计聊天室-多点对多点网络程序设计.doc_第4页
第4页 / 共15页
使用VB设计聊天室-多点对多点网络程序设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《使用VB设计聊天室-多点对多点网络程序设计.doc》由会员分享,可在线阅读,更多相关《使用VB设计聊天室-多点对多点网络程序设计.doc(15页珍藏版)》请在三一文库上搜索。

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)属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标。可以通过属性改变对象的特性。有些属性可以在设计时通过属性窗口来设置,不用编写任何代码;而有些属性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性,只能读取的属性成为只读属性。总之属性指明了对象“是什么样的?”,常用于定义对象的外观。如同上面的内容所描述的,不论您使用U

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

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

7、ived 接收到的字节数local hostname 本地机器名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.控件accept接受一个连接请求。格式:对象.a

8、ccept request IDbind:多协议接口下,把接口卡,IP地址捆绑再一起。格式:对象。Bina端口号,ip地址close:关闭连接。格式:对象。Closeconnect:发送连接请求。格式:对象。Connectip,远程端口getdata:取出数据后清除缓冲区。Peekdata:取出数据后不清楚缓冲区。格式:对象。Getdata(peekdata)变量,数据类型,最大长度Listen:侦听。格式:对象。ListenSenddata:发送数据。格式:对象。Senddata3控件事件Close 远程设备关闭连接时触发事件Connect 建立连接,进行通信时触发Connectreques

9、t 有连接请求时触发Data arrival 有数据到达时触发Error 错误时触发Send complete 完成一次数据传送触发Send progress 数据传送进度四、设计内容1、设计框架客户端服务端文件传输消息发送图2 消息文件交互客户端连接端口连接IP服务端图1 建立连接2、设计程序服务端:Option Explicit /强制声明变量Private Sub Command1_Click()If tcp.State = 7 And Text2.Text Then /winsock=7表示已连接 tcp.SendData Text2.Text /发送数据 Text1.Text = T

10、ext1.Text & 本机: & Text2.Text & vbCrLf /显示自己发送的信息,换行显示 Text2.Text = /文本清空 Text2.SetFocus /设置焦点 End IfEnd SubPrivate Sub Command2_Click()Dim Form2 As New Form2 /定义数据传输窗口Form2.Show /显示数据传输窗口End SubPrivate Sub Form_Load()tcp.LocalPort = 8888 /本地监听端口为8888tcp.Listen /开始监听End SubPrivate Sub tcp_ConnectionR

11、equest(ByVal requestID As Long) /连接请求If tcp.State 0 Then tcp.Close /如果不是关闭状态,关闭跳 tcp.Accept requested /接收请求ID End SubPrivate Sub tcp_DataArrival(ByVal bytesTotal As Long) /对方数据到达Dim strdata As String /定义字符串型 tcp.GetData strdata /获取数据传递给变量strdata Text1.Text = Text1.Text & 客户端: & strdata & vbCrLf /发送过

12、来的信息,换行显示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 /显示自己发送的信息,换行显示 Text2.Text = /文本清空 Text2.SetFocus /设置焦点End If End SubPrivate Sub Co

13、mmand2_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 & vbCrLf /在文本框显示消息,换行显示End SubPrivate Sub zyq2_Click()Dim p, myip As S

14、tring /定义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 String If txtFileName = Then MsgBox 你没有选择要发送的文件., vbCritical Else If

15、 frmServer.tcpServer.State sckClosed Then FName_Only$ = GetFileName(txtFileName) SendFile FName_Only$ End If End IfEnd Sub主要作用:发送用户选择的文件。Private Sub Form_Load() tcpServer.LocalPort = Port tcpServer.Listen bInconnection = False Status 侦察. (没有连接)End Sub主要作用:设置连接端口并侦察网络。Private Sub Form_Unload(Cancel A

16、s Integer) SendData 服务器关闭, Pause 500 tcpServer.Close EndEnd SubPrivate Sub tcpServer_Close() If tcpServer.State sckClosed Then tcpServer.Close Form_Load End SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long) On Error GoTo IDERROR If tcpServer.State sckClosed Then tcpServer.Close tcp

17、Server.Accept requestID bInconnection = True Status 侦察. 连接. SendData Accepted, Exit SubIDERROR: MsgBox Err.Description, vbCriticalEnd Sub主要作用:判断是否接收信息。Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long) Dim Command As String Dim NewArrival As String Dim Data As String Static DataCnt As Long

18、tcpServer.GetData NewArrival$, vbString Command = EvalData(NewArrival$, 1) Data$ = EvalData(NewArrival$, 2) Select Case Command$ Case OpenFile open the file Dim Fname As String Fname$ = App.Path & & Data$ Open Fname$ For Binary As #1 Status 文件打开. & Data$ Case CloseFile close the file Close #1 Status

19、 文件传输. Pause 3000 Status 侦察. (连接) Case Else a 4169 byte string of incoming data Put #1, , NewArrival$ txtView = txtView & NewArrival$ DataCnt& = DataCnt& + 1 Status Recieving Data. & (MAX_CHUNK * DataCnt&) & bytes End SelectEnd Sub主要作用:文件传输。Private Sub cmdBrowse_Click() cdOpen.ShowOpen If Not vbCanc

20、el Then txtFileName = cdOpen.FileName End IfEnd Sub主要作用:通过通用对话框打开需要传送的文件。图5 编辑服务端文件传输窗口传输窗口(客户端):Private Sub cmdConnect_Click() bReplied = False tcpClient.Connect Text1.Text, 1256 lTIme = 0 While (Not bReplied) And (lTIme = 100000 Then MsgBox 找不到服务器!, vbCritical, Connection Error tcpClient.Close Exi

21、t Sub End If cmdBrowse.Visible = True cmdSend.Visible = TrueEnd Sub主要作用:实现与服务器的连接。Private Sub cmdSend_Click() Dim FName_Only As String If txtFileName = Then MsgBox 你没有选择要发送的文件., vbCritical Else If tcpClient.State sckClosed Then FName_Only$ = GetFileName(txtFileName) SendFile FName_Only$ End If End I

22、fEnd Sub主要作用:发送文件。Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long) Dim Command As String Dim NewArrival As String Dim Data As String Static DataCnt As Long tcpClient.GetData NewArrival$, vbString Command$ = EvalData(NewArrival$, 1) Data$ = EvalData(NewArrival$, 2) Select Case Command Case

23、 Accepted server accepted connection bReplied = True Status 连接. Case ServerClosed Form_Load tcpClient.Close Case OpenFile open the file Dim Fname As String Fname$ = App.Path & & Data$ Open Fname$ For Binary As #1 Status 文件打开. & Data$ Case CloseFile close the file Close #1 Status 文件发送成功. Pause 3000 Status Connected. Case Else Put #1, , NewArrival$ txtView = txtView & NewArrival$ DataCnt& = DataCnt& + 1 Status 接收数据. & (MAX_CHUNK * DataCnt&) & bytes End SelectEnd Sub主要作用:判断连接状态。图6 编辑客户端文件传输窗口3、运行结果图7 运行客户端主窗口图8 客户端进行连接图9 输入服务端端口号图10 输入服务端IP地址五、设计总结六、设计心得七、参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1