用VB创建B/S程序

随着Windows 95中文版和Windows NT Server 4.0中文版的流行, Microsoft公司推出了相应平台上 的开发软件: Visual Basic 5.0 中文企业 版。它为Windows环境下的网络开发提供了强大的工具, Winsock控件就是其中之一。

Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的通 信。即使对TCP/IP不太熟悉的用户,使用该控件也可以在十几分钟内创建一个简单的客户机/服务器程序 。下面我们对Winsock控件的事件、方法、属性按其在程序中出现的顺序分别作详细的介绍,以便更好地 理解程序源代码。

服务器程序的实现过程是:

(1)服务器程序必须设置好LocalPort属 性,作为侦听端口,该值为一个整数(只要是一个其它TCP/IP应用程序没有使用过的值即可)。

(2)使用Listen方法进入侦听状态,等待客户机程序的连接请求。

(3)客户机程序发出连接请 求,使服务器程序产生ConnectionRequest事件,该事件得到一个参数requestID。

(4)服务器 程序用Accept方法接受客户机程序的requestID请求。这样,服务器程序就可以用SendData方法发送数据 了。Accept方法必须用上一步得到的requestID作为其参数。

(5)当服务器程序接收到数据时, 产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接 收数据。

(6)如果接受到Close事件,则用Close方法关闭TCP/IP连接。

客户机程序的实 现过程是:

(1) 客户程序设置Remotehost属性,以便指定运行服务器程序的主机 名,该字符 串可在“控制面板|网络|标识|计算机名”中查到。

(2) 设置RemotePort属性,以便 指定服务器程序的侦听端口。

(3)使用Connect方法,向服务器提出连接请求。

(4)服 务器接受客户机程序的请求,客户机程序产生Connect事件,就可以用SendData方法发送数据了。

(5)当客户机程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字 节数。在该事件中,可以用GetData方法接收数据。

(6)如果接受到Close事件,则用Close方法 关闭连接。

Winsock控件还有两个重要的属性,即Protocol和State。Protocol设定使用的协议是 TCP还是UDP:取值sckTCPProtocol表示TCP, 取值sckUDPProtocol则表示UDP。因为Winsock控件的缺省设 置是sckTCPProtocol,所以程序中并没有使用Protocol属性。State属性反映的是当前TCP/IP的连接状态 ,取值如表1所示。

表1 Winsock控件的State属性及其描述

常数 值 描述

sckClosed 0 缺省值,关闭。

SckOpen 1 打开。

SckListening 2 侦听

sckConnectionPending 3 连接挂起

sckResolvingHost 4 识别主机。

sckHostResolved 5 已识别主机

sckConnecting 6 正在连接。

sckConnected 7 已连接。

sckClosing 8 同级人员正在关闭连接。

sckError 9    错误。

先在 一台计算机上运行服务器程序,此时窗口上只有一个“退出”按钮。 再在另一台计算机上运 行客户机程序,在“连接”按钮右边的文本框中输入服务器 的主机名后单击“连接 ”按钮。如果连接成功,则服务器和客户机程序窗口都会出现两个文本框。这时,两端都可以在上 面的文本框中输入文字,这些文字会立即在下面的文本框中出现。

服务器程序使用的控件如下:

(1)Command1:退出按钮;

(2)textsend:发送数据文本框;

(3) Winsockserver: 服务器Winsock;

(4)textget :接收数据文本框。

服务器程序的界 面如图所示。

服务器程序的源代码如下:

Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
textsend.Visible = False
textget.Visible = False
Winsockserver.LocalPort = 1001
Winsockserver.Listen
End Sub

Private Sub textsend_Change()
Winsockserver.SendData textsend.Text
End Sub

Private Sub Winsockserver_Close()
Winsockserver.Close
End
End Sub

Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
textsend.Visible = True
textget.Visible = True
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
End Sub

Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim tmpstr As String
Winsockserver.GetData tmpstr
textget.Text = tmpstr
End Sub

时间: 2024-10-03 03:14:15

用VB创建B/S程序的相关文章

vb菜单在应用程序中的使用(二)

创建子菜单所创建的每个菜单可以包含最多五级子菜单.子菜单会分支出另一个菜单以显示它自己的菜单项.需使用子菜单的场合有:菜单栏已满.某一特定菜单控件很少被用到.要突出某一菜单控件与另一个的关系.然而,如果菜单栏中还有空间,最好再创建一个菜单标题而不是子菜单.这样,当菜单拉下时所有控件都可见.限制使用子菜单也是一种好的编程策略,它可以免去查找应用程序菜单界面的负担(大多数应用程序都只使用一级子菜单).在菜单编辑器中,在不是菜单标题的菜单控件之下缩进的任何菜单控件,都是子菜单控件.一般来说,子菜单控件

如何在Microsoft Visual Studio 2005中创建控制台应用程序

在 Visual Studio 2005 中创建控制台应用程序 在 Visual Studio 2005 中的"文件" 菜单上,指向"新建" 并单击"项目". 在"新建项目" 对话框中,选择一种语言,然后在"项目类型" 框中选择"Windows". 在"模板" 框中,选择"控制台应用程序" . 在"位置" 框中,键入指向应用程序

利用数据绑定和模板创建Atlas应用程序

程序|创建|模板|数据 一. 简介 本文将向你展示如何使用微软新的Web开发技术(代码名为Atlas)来实现数据绑定和模板.如果你已经理解什么是Atlas,其主要设计目的及其主要组件,那么你在阅读本文时将最大程度地受益. 本文将向你展示: · 把一个客户端listView控件绑定到一个dataSource控件. · 使用模板显示数据. 前提 为了完成本文中的示例程序,你需要具备下列条件: · Microsoft Visual Studio 2005和.NET Framework 2.0.有关下载

使用VB创建ASP服务器端组件

创建|服务器 使用VB创建ASP服务器端组件 本篇文章通过与传统的设计方法相比较,介绍了如何在ASP代码中调用VB组件的方法.在本篇文章中,我们假设读者具有VB和ASP的相关入门知识. 服务器端组件和客户端组件的比较 服务器端组件和客户端组件有许多不同之处.服务器端组件是在计算机服务器上注册的DLL文件,客户端组件则在浏览器运行的计算机上注册,在IE中,这些客户端组件被称作ActiveX浏览器插件组件. ActiveX客户端组件可以使用VB编写,并通过互联网或内联网发送给浏览器,生成很精彩的效果

使用VB编写纯ASP程序

程序 前几天大哥对我说,使用asp真麻烦,编译环境实在是差劲,他总是在vb里面写好调试好代码然后在把代码粘贴到asp程序中,为此,我在这提出一个解决之道.使用VB接替ASP所有的对象,在VB中编写纯粹的ASP程序. 大家应该都知道,其实asp中的好多组件都是使用VB编写出来的,但是让大家感到很不方便的是如何使用asp固有的几个组件,例如Response,Request,Application,Session等等,如果我要是能够在VB里面直接使用这些组件的话,那么就能够直接使用VB编写asp运用程

以前收集的一些资料---使用VB编写纯ASP程序(献给大哥)

程序             使用VB编写纯ASP程序    前几天大哥对我说,使用asp真麻烦,编译环境实在是差劲,他总是在vb里面写好调试好代码然后在把代码粘贴到asp程序中,为此,我在这提出一个解决之道.使用VB接替ASP所有的对象,在VB中编写纯粹的ASP程序.    大家应该都知道,其实asp中的好多组件都是使用VB编写出来的,但是让大家感到很不方便的是如何使用asp固有的几个组件,例如Response,Request,Application,Session等等,如果我要是能够在VB里

用VB学做“黑客”程序

只要掌握了原理,你也能写出一个所谓的"黑客"程序.下面笔者带领大家用VB亲自编写一个远程控制程序.从而揭开它的神秘面纱. 一.所用控件 在程序中将使用Winsock控件.Winsock控件是一个ActiveX控件,使用TCP协议或UDP协 议连接到远程计算机上并与之交换数据.和定时器控件一样,Winsock控件在运行时是不可见的.Winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和

为Access2007创建一个应用程序级的自定义Ribbon

为Access2007创建一个应用程序级的自定义Ribbon (一) 创建一个Access2007应用程序级的自定义Ribbon 1.开启Access2007,打开一个已存在的数据库或创建一个新数据库. 2.单击"Office按钮",单击"Access选项",然后单击"高级"选项卡. 3.在"常规"部分,选择选项"显示加载项用户接口错误"(在不同的应用程序中,该选项可能在不同的位置). 4.单击"

创建窗口和程序片

在Java 1.0中,图形用户接口(GUI)库最初的设计目标是让程序员构建一个通用的GUI,使其在所有平台上都能正常显示. 但遗憾的是,这个目标并未达到.事实上,Java 1.0版的"抽象Windows工具包"(AWT)产生的是在各系统看来都同样欠佳的图形用户接口.除此之外,它还限制我们只能使用四种字体,并且不能访问操作系统中现有的高级GUI元素.同时,Jave1.0版的AWT编程模型也不是面向对象的,极不成熟.这类情况在Java1.1版的AWT事件模型中得到了很好的改进,例如:更加清