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

上传人:卷*** 文档编号:124151816 上传时间:2022-07-24 格式:DOC 页数:19 大小:191.50KB
收藏 版权申诉 举报 下载
使用VB设计聊天室-多点对多点网络程序设计_第1页
第1页 / 共19页
使用VB设计聊天室-多点对多点网络程序设计_第2页
第2页 / 共19页
使用VB设计聊天室-多点对多点网络程序设计_第3页
第3页 / 共19页
资源描述:

《使用VB设计聊天室-多点对多点网络程序设计》由会员分享,可在线阅读,更多相关《使用VB设计聊天室-多点对多点网络程序设计(19页珍藏版)》请在装配图网上搜索。

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地址五、设计总结六、设计心得七、参照文献

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!