实现一对一聊天程序.doc_第1页
实现一对一聊天程序.doc_第2页
实现一对一聊天程序.doc_第3页
实现一对一聊天程序.doc_第4页
实现一对一聊天程序.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

_实现一个一对一的聊天程序一 实习题目实现一个一对一的聊天程序。其基本过程如下:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行通信。服务器和客户端可以是一台电脑上的两个进程,也可以分别部署在两台电脑上。二 原理概述本题是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。重点是流式套接字对象的使用,处理网络事件的方法。本此课程设计是利用网络聊天程序的基本设计思想,并按照网络通信的协议设计出来的一个基于UDP的网络聊天程序。端口号拼接到IP地址即构成了套接字(socket)。套接字(socket)=(IP地址:端口号)。在网络编程时常常把套接字作为应用进程和运输层协议之间的接口。当应用进程(客户或服务器)需要使用网络进行通信时,必须首先发出socket系统调用,请求操作系统为其创建一个“套接字”。这个调用的实际效果是请求操作系统把网络通信所需要的一些资源分配给该应用进程。操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,然后把这个套接字描述符返回给应用进程。此后,应用进程所进行的网络操作都必须使用这个套接字描述符。三 设计方案1 问题分析: 本次计算机网络与通信实习的任务是设计一个一对一的聊天程序。根据课程设计要求程序采用客户/服务器模式,分为客户端程序和服务器端程序。其基本过程如下:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行通信。服务器和客户端可以是一台电脑上的两个进程,也可以分别部署在两台电脑上。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。重点是流式套接字对象的使用,处理网络事件的方法。2 设计思路:程序采用VB语言编写,运用UDP面向无连接数据报协议完成实验,程序的核心是运用的空间为VB网络编程中的Winsock控件。数据之前不必建立连接,只需要将Winsock绑定到一个端口上,其他无连接协议的Winsock若想向此处发送数据,需要指明地址和端口。(1)将 RemoteHost 属性设置为另一台计算机的名称或者IP地址。(2)将 RemotePort 属性设置为另一台计算机Winsock控件所绑定的 LocalPort 属性。(3)调用 Bind 方法,指定使用的LocalPort。3 系统模块结构:根据程序设计要求,设计出整个网络聊天程序的设计框图。 服务器 客户端数据创建Winsock控件绑定到一个端口关闭连接创建Winsock控件绑定到一个端口关闭连接数据 系统总设计流程图 主程序在对方接收端口中显示发送消息调用发送消息函数txtSend_Change采用Winsock 控件连接服务器端开始结束开始采用Winsock 控件连接客户端调用发送消息函数txtSend_Change在对方接收端口中显示发送消息结束服务器端主流程图 客户端主流程图四 程序编写1 通过建立工程,设计出网络服务器程序,其设计过程及源程序代码如下。(1)创建一个新的Standard EXE 工程。(2)将缺省的窗体的名称修改为PeerA。(3)将窗体的标题修改为“服务器”。(4)在窗体中放入一个 Winsock 控件,并将其命名为 UDPSever。(5)在Winsock 控件的“属性”页上,单击“Protocol”属性,并将该属性值修改为 UDPProtocol。(6)在窗体中添加两个TextBox控件。将第一个命名为 txtSend,第二个命名为 txtOutput。(7)为窗体增加如下的代码。UDP聊天服务器程序: Private Sub Combo1_Click() TxtSend.Font.Name = Combo1.TextEnd SubPrivate Sub Check1_Click() 设置隶书字体If Check1.Value = 1 Then TxtSend.FontName = 隶书 Else TxtSend.FontName = 宋体 End IfEnd SubPrivate Sub Check2_Click() 设置下划线字体If Check2.Value = 1 Then TxtSend.FontUnderline = True Else TxtSend.FontUnderline = False End IfEnd SubPrivate Sub Check3_Click() 设置斜体字体If Check3.Value = 1 ThenTxtSend.FontItalic = TrueElse TxtSend.FontItalic = False End IfEnd SubPrivate Sub Check4_Click() 设置字体大小为18榜If Check4.Value = 1 Then TxtSend.FontSize = 18Else TxtSend.FontSize = 10 End IfEnd SubPrivate Sub Form_Load()Combo1.Text = TxtSend.Font.Name 设置下拉框,选择更多的字体 Dim i As Integer For i = 0 To Screen.FontCount - 1 Combo1.AddItem Screen.Fonts(i) NextWith UDPSever 控件的名字为UDPSever.RemoteHost= 4 服务器主机IP名称.RemotePort = 1001 连接的端口号.Bind 1002 绑定到本地的端口End WithEnd SubPrivate Sub txtSend_Change() UDPSever.SendData txtSend.Text 在键入文本时,立即将其发送出去End SubPrivate Sub UDPSever _DataArrival (ByVal bytesTotal As Long) 在服务器接收框中显示客户端传送的消息Dim strData As StringUDPSever.GetData strDatatxtOutput.Text = strDataEnd Sub2 通过建立工程,设计出网络客户端程序,其设计过程及源程序代码如下。UDP聊天客户端程序:(1) 在工程中添加一个标准窗体。(2) 将窗体的名字修改为 frmPeerB。(3) 将窗体的标题修改为“Peer B”。(4) 在窗体中放入一个 Winsock 控件,并将其命名为 udpClient。(5) 在“属性”页上,单击“协议”并将协议修改为“UDPProtocol”。(6) 在窗体上添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。(7)在窗体中添加如下的代码。 Private Sub Form_Load()Combo1.Text = TxtSend1.Font.Name 设置下拉框,选择更多的字体 Dim i As Integer For i = 0 To Screen.FontCount - 1 Combo1.AddItem Screen.Fonts(i) NextWith udpClient 控件的名字为udpPeerB.RemoteHost=4“ 客户端主机IP名称.RemotePort = 1002 连接的端口号.Bind 1001 绑定到本地的端口 End WithEnd SubPrivate Sub txtSend_Change()udpClient.SendData txtSend.Text 在键入文本时,立即将其发送出去End SubPrivate Sub udpClient_DataArrival (ByVal bytesTotal As Long) 在客服端接收框中显示服务器传送的消息Dim strData As StringudpPeerB.GetData strDatatxtOutput.Text = strDataEnd Sub五 运行结果(1)运行界面(2)服务器发送消息通过在发送消息栏输入文字,并在下面字体选择栏中选择自己喜欢的字体,进行发送,消息马上即可在客户端接收。如图(3)客户端发送消息同样,客户端发送消息与上图类似。六 实习心得和体会计算机网络与通信课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。计算机网络与通信实习是学习完计算机网络与通信课程后进行的一次全面的综合实习,是本专业实践性重要环节之一。计算机网络与通信实习是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议,或者架设一个小型局域网并对其进行相应配置。通过一周的实习,我对计算机网络的原理有了非常深刻的认识和理解,同时进一步锻炼了自己的动手能力。本次计算机网络课程设计让我对计算机网络协议有了更深入的了解,以前只是知道UDP及TCP等协议,但是不知道能够具体的用来编写小软件,这也是在计算机网络学习过程中打下的基础,有了计算机网络基础知识,让我在具体实践过程中更加顺利。借助本次实验自己再一次对VB语言中的控件有了更深的理解,并能够灵活运用,其中的一些参数虽然一

温馨提示

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

评论

0/150

提交评论