VB Winsock
使用Winsock控件进行网络编程(VB)PPT课件

11.03.2021
.
8ห้องสมุดไป่ตู้
14.3 用Winsock控件编写TCP应用程序
14.3.1网络聊天室的实现原理
为了实现应用程序的网络通信,首先,必须先建立起连接, 一个程序作为客户方(client)发出连接请求,另一个程序作为服 务方(server)监听客户的连接请求,一旦侦听到连接请求,服 务程序就立即响应其连接请求,从而建立起连接。一旦连接建 立好后,双方便均可收发信息,直到连接断开。
11.03.2021
.
7
14.2.3 Winsock控件的常用事件
事件 Close Connect ConnecRequest DataArrival Error sendComplete
描述 远程机器关闭连接时触发。 建立好连接,进行通信时可以触发。 有连接请求到达时产生。 有数据到达时触发。 发生错误时发生。 完成一次数据传送。
11.03.2021
.
9
14.3.2 网络聊天室的实现方法
图14-3 服务器端应用程序界面
图14-5 客户端应用程序界面
11.03.2021
.
10
14.4 用Winsock控件编写UDP应用程序
11.03.2021
.
11
11.03.2021
.
2
14.1 Winsock编程基础
Winsock是Microsoft Windows提供的网络编程,它提供了基于 TCP/IP协议的接口实现方法。
在 网 络 进 行 数 据 通 信 中 , TCP/IP 协 议 通 过 IP 地 址 加 上 端 口 (Port)号来标识主机和应用程序的连接。其结构如图所示。
描述 用于接受一个连接请求。 用来关闭一个TCP连接。 用于向远程主机发出连接请求。格式为:Winsock对象.Connect 取得接收到的数据。格式为:Winsock对象.GetData <变量> 用于服务器程序,等待客户访问。格式为:Winsock对象.Listen 用于发送数据。格式为:Winsock对象.SendData 数据
VB6通过winsock控件数组实现客户端和服务器多对一通信

VB6通过winsock控件数组实现客户端和服务器多对一通信在VB6中使用winsock控件需要引用Microsoft Winsock Control 6.0部件使用winsock控件可以实现客户端和服务器间C/S结构的通信,如果把客户端和服务器放置于同一台电脑中,并且将客户端winsock 的RemoteHost设置为本机IP,则可以实现客户端程序和服务端程序间的自由通信。
在应用程序之间采用winsock通信比内存共享等方法更简单快捷,同时也更安全。
在客户端中添加一个窗体,拖拽一个winsock控件到该窗体上。
RemoteHost代表需要连接的远程服务器IP地址,局域网中的通信可以使用路由器分配的IP地址。
RemotePort代表端口号,服务器和客户端通过该端口进行连接。
当客户端的winsock接收到服务器发送来的数据后会触发Winsock1_DataArrival事件,利用GetData方法可以将数据读取出来,一般来说将数据读取到byte()数组中是最好的,因为利用字节数组可以收发图片、音频等文件,本例中为了演示所以直接用一个字符串变量来读取数据了。
客户端向服务器发送数据可以用SendData方法,该方法同样可以发送字节数组,这里为了演示所以发送了个字符串。
服务器端为了能同时和很多个不同的客户端进行通信,所以需要采用winsock控件数组,在服务器窗体中拖拽一个winsock控件,将其名称更改为Listener,该控件用于接收客户端的连接请求。
再拖拽一个winsock控件到窗体中,然后将其Index属性更改为0,0即代表该控件是一个控件数组,为了使用方便所以把控件名称更改为Sock,该控件数组用于动态的和不同的客户端通信。
在服务器端的窗口中写入如下代码:利用Listener来侦听,代码如下:当有客户端需要连接服务器时会触发Listener_ConnectionRequest事件,此时会遍历Sock控件数组,如果里面有空闲的Sock则用这个空闲的Sock和客户端进行连接,如果没有空闲的则重新Load一个进来。
VB_WinSock网络编程

VB_WinSock 网络编程(河南科技学院 计科系 001班,河南 新乡 453003)摘要 本文通过对一个VB 实例开发过程的介绍,阐述了VB 程序开发的一般方法。
并且在文中详细地介绍了客户端/服务器(C/S )模型,以及在VB 网络程序开发中对C/S 模型的应用。
另外,文中介绍了VB 中WinSock 控件的具体用法,以及VB 中WinSock 的各个属性和方法的设置与使用方法。
除此以外,本文还有VB 程序设计后期的异常处理与调试的方法的介绍。
关键词 VB 程序开发,C/S 模型, VB 程序调试,异常处理,WinSock 控件ABSTRACT During the development process of a example edited by the VB program, it gives us a way about the program development of VB. It also interpret the client/server model explicitly and how to compiler we use it. In the text it has the specific way about the control unit in the WinSock, including the every attribute and setting the method. Excepting it introduces the exception handling after the design for a program and the method of the program debugging.Keywords VB program development, Client/Server Model, VB program debugging, Exceptionhandling, WinSock control1 引言随着网络的发展,计算机应用、软件开发都有了一个新的发展方向——网络。
在vb中利用Winsock控件实现FTP编程

在vb中利用Winsock控件实现FTP编程利用Winsock控件实现FTP编程一引言随着计算机在铁路各部门的普及,办公无纸化逐渐成为一种趋势,文件、资料、报表等数据的传送都通过计算机网络来完成。
FTP成为传送这些数据的流行工具。
为了更好地使用FTP,应该了解和掌握FTP 编程。
只有把FTP内嵌到应用程序中去,FTP的应用才更灵活,才能满足各种数据传输的需要。
本文以VB中的Winsock控件为工具,根据FTP的基本原理,阐明了FTP客户端编程的一般方法。
二FTP客户端与服务器间的基本协作过程下面是FTP模型的基本原理图:服务器数据传输进程客户端数据传输进程文件系统服务器协议接口客户端协议接口用户界面用户FTP命令FTP响应数据连接文件系统服务器FTP 客户端FTP1、客户端与服务器连接FTP是建立在TCP之上的连接,端口号使用21。
若客户端与服务器之间成功连接,服务器将返回字符串,如:220 GMS (Version 5.0)前三个字符220表示客户端与服务器成功连接,后面的字符会因服务器的不同而不同,但我们只关心前三个字符。
2、用户名和密码认证客户端发送用户名给服务器,如:USER guo如果服务器找到用户名guo,将返回字符串,如:331 User name okay, need password.接着客户端应发送密码给服务器,如:PASS aaa密码正确,返回如:230 User logged in, proceed.如果用户名或密码认证没通过,返回如:530 Not logged in.用户名也可以使用匿名,如:USER anonymous返回如:331 Anonymous access allowed,send identity (e-mail name) as password.3、建立数据连接FTP协议用两个连接来达到客户机与服务器之间交换数据的目的。
刚才建立了第一个连接——控制连接,它用于传送命令和响应。
Winsock控件基础(VB6.0)

Winsock控件基础(VB6.0)Winsock控件基础(VB6.0)1.Winsock控件基础Winsock控件在程序设计时,看不到这个控件显现在执行的窗体之中,但是它可以提供有关网络通讯方面的程序设计依据。
此外,在这个控件的使用上,您可以非常容易地要求控件为您调用TCP或是UDP网络服务的功能。
因此,当您在编写有关住从式架构的应用程序时,您可以不需要了解TCP 通讯协议或是低级的Winsock api调用方式。
通常,以笔者的经验,除了必须与标准通讯协议进行互动外,仅仅是进行一般性相互通讯、交换数据时,Winsock控件可以满足您的要求。
因此您可以非常容易地通过属性的设置以及控制方法的调用,与远程的设备进行连接并且相互交换信息。
关于这些应用方面以及调用方式,笔者将在接下的探索中,慢慢地研究Winsock的应用方式。
1-1TCP基础不论是在Internet或是Internet网络之中,以目前流行的趋势,多半都会使用TCP协议来进行远程设备的连接。
TCP 协议的全名为“传输控制协议(transfer control protocol)”,这是一种在Internet上使用的主要协议,例如http,ftp,smtp 等,都是属于这个中面向连接的协议。
因此,当您使用TCP 协议连接两个网络上的设备时,将可以在它们之间交换希望交换的数据。
同时,如果您开发的应用程序属于主从式应用架构(或是n-tear(多层次))应用系统时,将必须要知道应用系统主机的ip地址(利用RemoteHost属于取得)以及连接端口号(利用remoteport属于取得)。
在这些数据完全备齐之后,您才可以进行进一步的调用、连接。
因此,如果正在建立主机端应用程序时,必须指定本机,必须指定本机(执行应用程序所在的计算机)所用的连接端口号(localport属于),接着将Winsock控件设置为“监听(listen)”,即可等候远程客户端进行调用与连接。
VB6中使用Winsock穿越各种代理的实现

关于⽤vb的winsock穿透代理的讨论归讨论,⼀直没有什么源代码放出,现在我就放源出来,省的某些⼈拿这所谓的"技术"去骗钱. 由于缺乏测试环境,本程序只在我⾃⼰编写的代理模拟器上测试过,其结果和腾讯QQ,MSN,易泡泡穿越该模拟器时得出的结果基本⼀致.因此,代码可能有错误的地⽅,请各位有条件的⽤户⾃⾏改正,请见谅! ⾸先,是基础知识,也就是RFC⽂档.这个是必看内容.我的程序就是基于这些⽂档写出.下⾯是各RFC的连接,为了准确,我先提供英⽂版的连接,在下⾯的介绍中再把关键部分翻译成中⽂.另外,要纠正⼀个错误.国内很多⽂章说socks5代理的⽤户名/密码校验标准在 RFC 1928⾥有说明,其实这是⼀个完全错误的说法(我很怀疑写那⽂章的⼈有没有看过RFC),socks5⽤户名/密码校验标准其实是在 RFC 1929 ⾥⾯说明的. RFC 1928 - socks5 代理标准 RFC 1929 - socks5 代理⽤户名/密码校验标准 RFC - socks4 代理标准 RFC 2616 - HTTP1.1 标准 我们现在直⼊正题:先说socks5的TCP穿透(有了这个例⼦⼤家⾃⼰照这可以写UDP穿透) ⾸先和代理服务器连接-直接⽤winsock去connect指定的地址端⼝(通常是1080)即可.然后进⼊细节商议阶段. 细节商议--⽆⽤户名/密码校验 RFC 1928 中对于细节商议的第⼀步是这样描述的: The client connects to the server, and sends a version identifier/method selection message: +----+----------+----------+ |VER | NMETHODS | METHODS | +----+----------+----------+ | 1 | 1 | 1 to 255 | +----+----------+----------+ The VER field is set to X'05' for this version of the protocol. The NMETHODS field contains the number of method identifier octets that appear in the METHODS field. The server selects from one of the methods given in METHODS, and sends a METHOD selection message: +----+--------+ |VER | METHOD | +----+--------+ | 1 | 1 | +----+--------+ If the selected METHOD is X'FF', none of the methods listed by the client are acceptable, and the client MUST close the connection. The values currently defined for METHOD are: o X'00' NO AUTHENTICATION REQUIRED ---------⽆⽤户密码 00 o X'01' GSSAPI --------- GSSAPI ? o X'02' USERNAME/PASSWORD ---------有⽤户密码 02 o X'03' to X'7F' IANA ASSIGNED o X'80' to X'FE' RESERVED FOR PRIVATE METHODS o X'FF' NO ACCEPTABLE METHODS ---------失败 255 The client and server then enter a method-specific sub-negotiation.。
VB教程中关于Winsock控件的网络数据通讯教学探讨
3结 语
本文 通 过 对VB中的 Wi S c n o k控件 特 性 的 值 即 可 ) 例 如 : i o k1 Lo a Po t 。 W ns c . c l r = l a p r( c l p r为端 口变量 ) ( ) 用 与 功 能 应 用 分 析 , 出 了 基 于 该控 件 的 实 oc l o t o a— o t 1 。2使 给 L se 方 法 进 入侦 听 状 态 , 待 客 户 机程 序 现 数 据 传 输 与 通 讯 的 具 体 实现 方 案 。 用 i n t 等 利 此 方 法 , 以 方 便 的 解 决 网 问数 据 传 送 , 可 的连接请求 。 W is c n o kl。 nd o a _ r Bi l c l po t 提 高 开 发 效 率 , 有 广 泛 的 适 用性 和 实 用 具 W i oc 1. se ns k Lit n 价值 。 ( ) 户机 程 序 发 出 连 接 请 求 , 服 务 3客 使 器程序 产生 C n et n q et 件 , 事件 o n ci Re u s事 o 该 得 到 一 个 参 数r q e tD。4 服 务 器程 序 用 e u sI ( ) Ac e t 法 接 受客 户 机程 序 的 r q e tD cp方 e u sI 请 求。 这样 , 务 器程 序 就 可 以用 S n Daa 服 e d t 方 条 一 样 : 台 计 算 机 向 另 一 台 计 算 机 发 送 法 发 送 数 据 了 。 c p 方 法 必 须 用 上 一 步 一 Ac e t 消 息 , 是 它 们 之 间 并 没 有 一 个 明 确 的 连 得 到 的 rq etD 为 其 参 数 。 但 e u sI 作 接路径 。 Prv t ub W is c i ae S n o kl Co net nRe et n ci o qu s 1 2Wi o k 件应 用属性 . n c 控 s ( VM e usl AsL n ) By rq et D o g Wis c n o k控件 在 数据 的 远程 交 换过 程 中 主要利用以下几个重 要属性。 W is c n o k2. c pt e Ac e r que t D sI
VB Winsock控件创建多个连接
VB Winsock控件创建多个连接。
VB学习2010-12-11 16:28:12 阅读105 评论0 字号:大中小订阅用VB写的一个简单的服务端程序,服务器端程序:Private Sub Form_Load()tcpserver.LocalPort = 1001 '将LocalPort 属性设置为一个整数。
tcpserver.Listen '然后调用Listen 方法。
End SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long)If tcpserver.State <> sckClosed Then tcpserver.Close '检查控件的State 属性是否为关闭的。
'如果不是,'在接受新的连接之前先关闭此连接。
tcpserver.Accept requestID '接受具有requestID 参数的'连接。
msgbox("有人连接服务端")End Sub客服端程序Private Sub Form_Load()tcpClient.RemoteHost = "192.168.1.2"tcpClient.RemotePort = 1001End SubPrivate Sub cmdConnect_Click() '连接按钮tcpClient.ConnectMsgBox ("连接服务器成功")End Sub运行后,启动服务端,然后启动客户端,点“连接”按钮,客服端端跳出窗口“连接服务器成功”,服务端跳出窗口“有人连接服务端”。
表示双方建立了连接。
这个时候关闭客户端,然后再启动,点“连接”按钮,就只是跳出连接服务器成功(程序设置不完美)。
然后在输入框中输入向服务端发送数据,出现“错误“40006” 所需事物请求的错误协议连接或连接状态”。
VB6中用Winsock控件实现多台计算机之间的通信
四川畜牧兽医学院学报 2002,16(4)Jo urnal of Sichuan Institute of Animal Hus bandry and Veterinary MedicineVB6中用Winsock 控件实现多台计算机之间的通信胡大辉 杜治国 肖兴江(西南农业大学荣昌校区信息学院 重庆荣昌 402460)摘 要 本文主要阐述通过VB6中Winsock 控件的灵活运用,达到计算机之间相互通信的目的。
文章从介绍Winsock 控件入手,利用W insock 控件实现两台计算机之间互相通信,在此基础上达到多台计算机通信的目的,最后概要介绍开发实用通信软件的基本方法。
关键词 VB6 Winsock 计算机通信 程序设计中图分类号 G201 文献标识码 A 文章编号 1009-0533(2002)04-0080-051 前言Visual Basic 6.0,简称VB6,是M icrosoft Visual Studio 可视化工具中的一个开发工具,是一个用于快速开发基于Windo w s 的客户机/服务器应用程序的高效工具。
Visual Basic 现在流行的版本是6.0,比较以往的版本,VB6新增的特性有:数据访问的改进,增加AD O(ActiveX Date Objects)控件;新的网络通信特性;新增一些控件并对原有控件进行改进;用户可以创建自己的数据源;对语言特性进行改进并新增一些函数。
因此,无论用户是Windo ws 编程的新手或是对Windo ws 编程有丰富的经验,利用Visual Ba-sic 提供的良好的开发环境,用户均可快速完成所需任务。
在VB6中,一共有三个Activ eX 控件可以用来开发计算机通信应用程序,它们为用户提供了几乎每一层的网络通信协议。
这三个控件是Winso ck 控件、Intern et Transf er 控件和Web-Bro wser 控件。
2 Winsock 控件的功能及属性2.1 Winsock 控件的功能 Winsock 控件能开发基于传输控制协议(TCP)和用户数据报协议(UD P)的计算机网络通信应用程序,并提供对T CP 和UD P 的低层访问。
Winsock在VB网络编程中应用
Winsock在VB网络编程中应用【摘要】本文分析了Winsock的基本原理和适用协议,针对VB网络编程中如何使用Winsock进行分析讨论,并给出实例。
【关键词】VB;Winsock;tcp;udp0.引言Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX 操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流行的网络通信应用程序接口之一。
20世纪90年代初,由Sun Microsystems,JSB,FTP software,Microdyne和Microsoft等几家公司共同定制了一套标准,即Windows Socket规范,简称WinSock。
Winsock控件可以应用的大致范围:(1)将客户端所收集的数据,传送给主机端。
(2)点对点的文件传送。
(3)聊天室应用程序。
(4)电子公告栏(BBS)。
(5)voip(voice over TCP/ip)1.选用适用的协议使用Winsock控件可以选择TCP 协议或是UDP协议中的一种。
但是这两种协议主要的差异在于连接的状态。
TCP协议是属于面向连接的协议。
UDP协议是属于无面向连接协议。
因此,必须依据应用程序使用的环境来选择适用的协议。
2.如何允许更多客户端同时连接当应用程序架构是属于主从式架构时客户端不止一个。
利用Visable Basic 控件数组的方式并利用监听用的数组元素(一般都是索引值“0”),来触发ConnectRequest事件。
再利用判别控件数组元素的连接状态来进行远程客户端连接。
3.程序代码…首先,声明一些变量,代码如下所示。
Dim strCommand As StringDim strWebPage As StringPrivate Sub Win_Click()If Winuser.Text = ““ Or Winpw.Text = ““ ThenMsgBox “请填写完整!”Else…为了动态设置Winsock控件的一些属性,在“开始”按钮的Click事件加入以下代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB Winsock 入门送给初学VB Winsock的朋友Winsock通信是建立在两台PC机上的..包括服务端与客户端举个比方吧就好比那些木马吧你的电脑中了木马那么你的电脑成了服务端(暂且不考虑其他的情况,只是做个例子)Server 那些装木马的人的电脑就是个客户端Client. 我们若是想控制我们装有木马的程序的电脑.必须保证服务端运行.饿..还得知道IP 我们假设我们装有木马的电脑的IP暂且固定为127.0.0.1 好了,我们开始写这两个程序的代码.服务端代码弄个Text和winsock就可以了Private Sub Form_Load()Winsock1.LocalPort = '1234' '设置本地端口Winsock1.Listen '开始监听End SubPrivate Sub Winsock1_Close()Winsock1.ListenEnd SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)If Winsock1.State <> sckClosed Then Winsock1.CloseEnd If Winsock1.Accept requestIDEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim mymsg As StringWinsock1.GetData mymsg, vbString '将接受的信息Text1.Text = mymsgIf mymsg = 'hello' Then '这里我们对信息判断进行相应的操作.MsgBox '你好' '我们可以不拘泥于这些,可以其他的命令..关机啊重启啊.End IfEnd SubPrivate Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)Winsock1.CloseEnd Sub客户端代码..Private Sub Command1_Click()Winsock1.SendData Text1.Text '发送Text1.Text信息End SubPrivate Sub Form_Load()Winsock1.RemoteHost = '127.0.0.1' '一切都设置好.开始连接Winsock1.RemotePort = '1234'Winsock1.Connect Text1.Text = '连接成功'End SubOK.都可以了..我们开始连接我们在客户端的Text里面输入hello 点击按钮发送嘿嘿..是不是发现服务端弹出对话框了 .. winsock可以用来制作聊天工具啊..网游也很需要Winsock.. 了解基本的信息后,大家可以尝试下做个聊天工具,也就是弄个聊天室这里不在多说了.. 饿..就这样了VB网络编程--WinSock控件及WinSockAPIWinSock简介Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流行的网络通信应用程序接口之一。
20世纪90年代初,由Sun Microsystems,JSB,FTP software,Microdyne和Microsoft等几家公司共同定制了一套标准,即Windows Socket规范,简称WinSock。
VB编写网络程序主要有两种方式:1.winsock控件2.winsockAPI二,WinSock控件的使用1.WinSock控件的主要属性a.Protocol属性通过Protocol属性可以设置WinSock控件连接远程计算机使用的协议。
可选的协议是TCP和UDP对应的VB的常量分别是sckTCPProtocol和sckUDPProtocol,Winsock控件默认协议是TCP。
注意:虽然可以在运行时设置协议,但必须在连接未建立或断开连接后。
b.SocketHandle属性SocketHandle返回当前socket连接的句柄,这是只读属性。
c.RemoteHostIP属性RemoteHostIP属性返回远程计算机的IP地址。
在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。
如果使用的是UDP协议那么当DataArrival事件后,发送UDP报文的计算机的IP才赋给了这个属性。
d.ByteReceived属性返回当前接收缓冲区中的字节数e.State属性返回WinSock控件当前的状态常数值描述sckClosed 0 缺省值,关闭。
SckOpen 1 打开。
SckListening 2 侦听sckConnectionPending 3 连接挂起sckResolvingHost 4 识别主机。
sckHostResolved 5 已识别主机sckConnecting 6 正在连接。
sckConnected 7 已连接。
sckClosing 8 同级人员正在关闭连接。
sckError 9 错误2.WinSock主要方法a.Bind方法用Bind方法可以把一个端口号固定为本控件使用,使得别的应用程序不能再使用这个端口。
b.Listen方法Listen方法只在使用TCP协议时有用。
它将应用程序置于监听检测状态。
c.Connect方法当本地计算机希望和远程计算机建立连接时,就可以调用Connect方法。
Connect方法调用的规范为:Connect RemoteHost,RemotePortd.Accept方法当服务器接收到客户端的连接请求后,服务器有权决定是否接受客户端的请求。
e.SendData方法当连接建立后,要发送数据就可以调用SendData方法,该方法只有一个参数,就是要发送的数据。
f.GetData方法当本地计算机接收到远程计算机的数据时,数据存放在缓冲区中,要从缓冲区中取出数据,可以使用GetData方法。
GetData方法调用规范如下:GetData data,[type,][maxLen]它从缓冲区中取得最长为maxLen的数据,并以type类型存放在data中,GetData取得数据后,就把相应的缓冲区清空。
g.PeekData方法和GetData方法类似,但PeekData在取得数据后并不把缓冲区清空。
3.Winsock控件主要事件a.ConnectRequest事件当本地计算机接收到远程计算机发送的连接请求时,控件的ConnectRequest事件将会被触发。
b.SendProgress事件当一端的计算机正在向另一端的计算机发送数据时,SendProgress事件将被触发。
SendProgress事件记录了当前状态下已发送的字节数和剩余字节数。
c.SendComplete事件当所有数据发送完成时,被触发。
d.DataArrival事件当建立连接后,接受到了新数据就会触发这个事件。
注意:如果在接受到新数据前,缓冲区中非空,就不会触发这个事件。
e.Error事件当在工作中发生任何错误都会触发这个事件。
VB网络编程--WinSock控件及WinSockAPI减小字体增大字体三,WinSockAPI的使用1.WSAStartup 函数为了在你的应用程序当中调用任何一个Winsock API 函数,首先第一件事情你就是必须通过WSAStartup函数完成对Winsock 服务的初始化,因此需要调用WSAStartup函数。
Declare Function WSAStartup Lib "ws2_32.dll" _(ByVal wVersionRequired As Long, lpWSAData As WSAData) As Long这个函数有两个参数:wVersionRequired 和lpWSAData。
wVersionRequired 参数定义Windows Sockets 提供能使用的最高版本,它的高位字节定义的是次版本号,低位字节定义的是主版本号。
下面的2个Winsock版本在VB中使用的例子:初始化1.1版本lngRetVal = WSAStartup(&H101, udtWinsockData)初始化2.2版本lngRetVal = WSAStartup(&H202, udtWinsockData)第二个参数是WSADATA 的数据结构,它是接收Windows Sockets 执行时的数据。
Type WSADatawVersion As IntegerwHighVersion As IntegerszDescription As String * WSADESCRIPTION_LENszSystemStatus As String * WSASYS_STATUS_LENiMaxSockets As IntegeriMaxUdpDg As IntegerlpVendorInfo As LongEnd Type数据成员的描述在下表中:Field 描述wVersion Windows Sockets 版本信息。
wHighVersion 通过加载库文件得到的最高的支持Winsock 的版本,它通常和wVersion值相同。
szDescription Windows Sockets 执行时的详细描述szSystemStatus 包含了相关的状态和配置的信息iMaxSockets 表示同时打开的socket最大数,为0表示没有限制。
iMaxUdpDg 表示同时打开的数据报最大数,为0表示没有限制。
lpVendorInfo 厂商指定信息预留在Winsock的1.1和2.2版本中没有lpVendorInfo的返回值。
因为winsock 2支持多个传输协议,所以iMaxSockets 和iMaxUdpDg只能在仅支持TCP/TP的winsock1.1中使用。