用vbnet编写基于cs模式的网络聊天室

用vbnet编写基于cs模式的网络聊天室

ID:26762018

大小:384.00 KB

页数:29页

时间:2018-11-29

用vbnet编写基于cs模式的网络聊天室_第1页
用vbnet编写基于cs模式的网络聊天室_第2页
用vbnet编写基于cs模式的网络聊天室_第3页
用vbnet编写基于cs模式的网络聊天室_第4页
用vbnet编写基于cs模式的网络聊天室_第5页
资源描述:

《用vbnet编写基于cs模式的网络聊天室》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用VB.NET编写基于C/S模式的网络聊天室作者:高景晖(电气27班02041201)目录1.基础知识1.1如何使用Winsock?1.1.1UDP协议1.1.2TCP协议1.2VB.net的一些基础知识1.3关于控件数组2.功能实现3.设计思路3.1功能要求3.2思路概述3.3Winsock端口分配的分配策略3.4会话建立的流程及描述3.5客户离线的流程及描述3.6客户端发送消息的流程及描述4.程序中重要函数的功能列表4.1服务器端主界面“form1“窗体下的程序4.2服务器端的“user_adm”窗体4.3客户端程序5.实验总结摘要本文主要

2、目的是阐明用户的需求,程序的思路,和具体的程序编写过程。程序采用TCP协议,完成了基于C/S/模式应用程序的编写。主要运用vb中一个封装的控件——Winsock进行服务器和客户端之间的通讯。其中,服务器采用了Winsock控件数组的方法,真正在服务器端实现了多线程,并且实现了服务器和客户端之间一对多的模式。本文的第一部分介绍了Winsock,VB.NET,控件数组的一些基本知识,这有利于读者读懂程序中的内容;第二部分给出了程序运行的结果,使读者对程序的功能有感性的了解;第三部分分析了程序编写的思路,进一步让读者了解程序的内部机理;第四部分给出了

3、源程序。1.基础知识1.1如何使用Winsock?Winsock控件在通信时使用了两种传输层协议:UDP和TCP。1.1.1UDP协议这种协议有一个最大的缺点,在于其无连接过程,也就无法进行用户身份的验证,考虑到网络的安全性和保密性,本项目不采用此协议。1.1.2TCP协议TCP协议是一种面向连接的传输层协议。用TCP协议下的Winsock控件可以进行用户身份验证,具体怎样实施后面在讲,先介绍一下服务器-客户端模式中Winsock的工作原理。ConnectListen客户端服务器图1.尝试联结(1)客户端和服务器端各添加一个Winsock控件,

4、将服务器端的Winsock置于侦听的状态listen(),随时侦听来自客户端的连接请求;在某一时刻客户端发出了尝试连接的请求connect()(如图1),转向第二步。ConnectAcceptConnectionRequest客户端服务器图2.建立连接(2)服务器收到客户端发出的尝试连接请求,于是在服务器端触发ConnectionRequest事件,此时先将服务器端的Winsock控件关闭,然后设置一下参数,再用Accept方法接收来自服务器端的请求,建立正式的连接。(如图2),如果客户端服务器端要发送数据到服务器端,转向第三步。SendDat

5、aGetDataDataArrival客户端服务器图3.客户端传送数据至服务器端(3)客户端用SendData方法发送需要发送的数据(如用户名,端口号,聊天信息等),这就会触发服务器里的DataArrival事件,如果在DataArrival事件的触发函数中加入GetData语句,就可以让服务器接收到客户端发送的数据(如图3)。GetDataSendDataDataArrival客户端服务器图4.服务器端传送数据至客户端(4)同样的道理,服务器也可以通过触发客户端的DataArrival函数,向客户端发送数据,同步骤三(如图4)。1.2VB.n

6、et的一些基础知识(1)本程序采用了模块化设计的方法,多采用函数和函数调用的方式,这就有必要介绍一下VB.net中的函数。VB.net中函数过程的形式如下:[{Public/Protected/Friend/Private}]Sub过程名[参数(类型)]过程的内容Return表达式(返回值)EndSub当你想要编写一个很大的程序时,你可以先根据你的需求进行分析,分析出这些需求所对应的功能,然后把你想要实现的功能,按模块编写在若干个函数过程中时,你就可以在主程序中对这些函数进行调用。这样,你的函数就会看起来变得结构清晰,更有条理了。这也就是我们常

7、说的“模块化的设计方法”。那函数已经写好,怎样对它进行调用呢?(2)VB.net中函数的调用使用上面的Sub过程定义的函数一般有两种调用方式:①把过程名放在一个Call语句中(call函数过程名);②直接把函数名作为一个语句来使用。以上两种方法可以任选其一。1.3关于控件数组数组为共享公用功能的一组控件一起工作提供了便捷的途径。例如,一组控件可能用于显示相关的数据,或者在被点击时提供相关的行为。VisualBasic.NET本身并不支持控件数组的建立,但是你可以通过编程复制控件数组的所有功能。控件数组的主要用处有:(1)使用相同的名称与索引访问

8、一组控件,允许用编号检索和设置数据项并且在整个数组中重复。(2)多个对象使用同一个事件处理程序(eventhandler)处理事件,在这些事件中检索和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。