VB Winsock的属性和方法

合集下载

VB网络编程--WinSock控件及WinSockAPI

VB网络编程--WinSock控件及WinSockAPI

初始化1.1版本
lngRetVal = WSAStartup(&H101, udtWinsockData)
初始化2.2版本
lngRetVal = WSAStartup(&H202, udtWinsockData)
第二个参数是WSADATA 的数据结构 ,它是接收Windows Sockets 执行时的数据。
iMaxSockets 表示同时打开的socket最大数,为0表示没有限制。
iMaxUdpDg 表示同时打开的数据报最大数,为0表示没有限制。
lpVendorInfo 厂商指定信息预留
在Winsock的1.1和2.2版本中没有lpVendorInfo的返回值。因为winsock 2支持多个传输协议,所以iMaxSockets 和iMaxUdpDg只能在仅支持TCP/TP的winsock1.1中使用。为了在Winsock 2中获得这些值,你可以使用WSAEnumProtocols 函数。
如果成功或者返回一个错误代码,则函数返回 0。
错误代码 含义
WSASYSNOTREADY 指出网络没有为传输准备好。
WSAVERNOTSUPPORTED 当前的WinSock实现不支持应用程序指定的Windows Sockets规范版本
b.SocketHandle属性
SocketHandle返回当前socket连接的句柄,这是只读属性。
c.RemoteHostIP属性
RemoteHostIP属性返回远程计算机的IP地址。在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。如果使用的是UDP协议那么当DataArrival事件后,发送UDP报文的计算机的IP才赋给了这个属性。

VBWinsock控件的使用与介绍

VBWinsock控件的使用与介绍

VB Winsock 控件的使用与介绍第一节: Winsock 控件的介绍Winsock 控件的作用简单说就是可以用于两台或多台机器间通信,这里不多说这个控件的作用了,因为在以后的介绍中我们会了解到这个控件的强大功能的,如可以用来做聊天软件等废话不多说,来看看他有些什么重要的属性、方法和事件吧!在 VB6.0 中的工具箱里默认情况下是没有这个控件的,添加方法如下:在工具箱上右击,选择 [部件 ],然后在部件对话框中选择 "MicrosoftWinsock Control6.0",后确定即可。

如果没有这个复选框的话,请点击 [浏览]按钮后在打开的 [添加 ActiveX 控件 ]对话框选择MSWINSCK.ocx 后选择打开,再点确定即可。

Winsock 控件在工具箱中图标为。

Winsck 的主要属性:属性名说明 BytesReceived返回接收的数据,可以用GetData 方法来获取它LocalHostName返回本机名LocalIP返回本机 IPLocalPort返回或设置本机所用的端口,如果为0 则为随机产生Protocol返回通信所用的协议RemoteHostName返回通信对方的计算机名RemoteHostIP返回通信对方的IPState返回 Winscok 的当前状态,取值如下sckClosed (常量为 0):关闭状态sckOpen (常量为 1):打开状态sckListening (常量为2):侦听状态sckConnectionPending (常量为3):连接状态sckResolvingHost (常量为4):解析主机中sckHostResolved (常量为 5):已解析主机sckConnecting (常量为6):正在连接sckConnected (常量为 7):已经连接sckClosing (常量为8):客户端正在关闭sckError (常量为9):连接发生错误。

VBWinsock控件的使用与介绍

VBWinsock控件的使用与介绍
End Sub
Private Sub cmdSend_Click() wskClient.SendData txtMessage.Text ' txtContent.Text = vbCrLf & txtContent.Text & " " & txtMessage.Text ' txtContent.Text=""
HTTP 80 FTP 21
Web
Web
Web 124
Form_Load
124
Private Sub Form_Load() wskServer.LocalPort = 124 wskServer.Listen
End Sub
wskServer ConnectionRequest
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long) If wskServer.State <> sckClosed Then wskServer.Close End If wskServer.Accept requestID
End Sub Winsock Connect
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long) If wskServer.State <> sckClosed Then wskServer.Close ' wskServer.Accept requestID ' 4 ConnectionRequest Accept End If
Private Sub cmdConnect_Click() Dim IP As String IP = InputBox(" IP", " IP", "127.0.0.1") ' IP wskClient.RemoteHost =P wskClient.RemotePort = 1024 '2 RemotePort wskClient.Connect '3 Connect cmdConnect.Enabled = False

VB_WinSock网络编程

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介绍

VB winsock介绍

VB winsock介绍2008年06月27日星期五 13:18Winsock是Mcrosoft windows提供的网络编程接口,它供了基于TCP/IP协议接口实现方法.通过网络进行的数据通信,需要用地址来表示网络中的主机.TCP/IP 协议使用IP地址来作为主机的标识.实现的连接方式是通过IP地址来识别的.通常情况下每台设备运行的不止一个程序,所以为了使用应用程序间的连接,还需要建立一个地址标识.在TCP/IP中使用端口来作为标识号(PORT).IP地址+端口地址.TCP:实现提供双向,有序无从复的数据流服务,流量控制+差错检测+纠错等功能.1.VB控件winsock是个运行中不可件的控件,常用属性如下:byte received 接收到的字节数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接受一个连接请求。

格式:对象.accept request IDbind:多协议接口下,把接口卡,IP地址捆绑再一起。

格式:对象。

Bina端口号,ip地址close:关闭连接。

格式:对象。

Closeconnect:发送连接请求。

格式:对象。

Connect〔ip,远程端口〕getdata:取出数据后清除缓冲区。

Peekdata:取出数据后不清楚缓冲区。

格式:对象。

Getdata(peekdata)变量〔,数据类型〔,最大长度〕〕Listen:侦听。

《Visual Basic 6.0程序设计》第15章:使用Winsock控件编写网络程序

《Visual Basic 6.0程序设计》第15章:使用Winsock控件编写网络程序

/
15.1.1 基本概念
4. 什么是Socket
Socket在英文中意为“插座”,也翻译为“套接字”。Socket 这个概念最初是指由美国的Berkeley 大学为UNIX操作系统开发的网 络编程接口,它用来解决Internet上进程之间的通信问题。20世纪90 年代初,由Microsoft公司联合其他公司共同制定了一套Windows下的 网络编程接口,即Windows Socket规范。它继承和发展了UNIX中的 Socket并得到广泛的应用,增加了一些异步函数,并增加了符合 Windows消息驱动特性的网络事件异步选择机制。 在Internet上,一个Socket是用一个三元组来描述的,其格式为[ 协议,本地地址,本地端口]其中协议指定了通信所使用的协议。这 个三元组称为一个半相关,它描述了通信双方中的一方,客户方或服 务器方。协议,本地地址,本地端口,远地地址,远地端口这个五元 组称为一个全相关,它描述了一次通信的双方,包括客户机方和服务 器方。
/
15.1.2 套接字网络编程原理
1. 面向无连接协议 Socket编程模式:
/
15.1.2 套接字网络编程原理
2. 面 向 连 接 协 议 Socket编程模式:
/
/
15.1.1 基本概念
3. 端口
通常情况下,由于每台主机上运行不止一个应用程序,所以为使 应用程序间建立连接,还需一个地址标识。在TCP/IP协议中使用端 口(Port)来作为主机上运行的应用程序的标识号。IP地址相当于单位 门牌号码,端口号是该单位各个办公室的编码。 因此,TCP/IP协议中一个有效的网络地址包括IP地址和端口地址。如 图15.2所示。
15.2 Winsock控件介绍
1. 属性

Winsock控件基础(VB6.0)

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)”,即可等候远程客户端进行调用与连接。

用VBWinsock控件创建TCPIP客户机服务器程序

用VBWinsock控件创建TCPIP客户机服务器程序

用VBWinsock控件创建TCPIP客户机/服务器程序摘要本文介绍了如何使用VBWinsock控件来创建基于TCP/IP协议的客户机/服务器程序。

通过VBWinsock控件,我们可以通过互联网或局域网上的计算机之间进行通信。

本文将分为以下几个部分来说明如何创建并使用VBWinsock控件来实现客户机/服务器应用程序。

1.VBWinsock控件是Visual Basic的一个强大的网络编程控件,用于与其他计算机进行网络通信。

它通过提供一系列的事件和方法,使得我们可以轻松地创建客户机/服务器应用程序。

2. 创建服务器端程序要创建一个服务器端程序,我们需要首先添加VBWinsock控件到我们的项目中。

进入Visual Basic的设计界面,单击“工具箱”窗口上的“组件”选项卡,然后选择VBWinsock控件,拖放到我们的窗体或模块中。

现在我们可以开始编写服务器端程序的代码。

以下是一个简单的VBWinsock服务器端程序的示例:Private Sub Form_Load()Winsock1.LocalPort = 5000 ' 设置服务器监听的端口号Winsock1.Listen ' 启动服务器监听End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed ThenWinsock1.Close ' 如果当前有连接,则关闭它End IfWinsock1.Accept requestID ' 接受客户端的连接请求End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim receivedData As StringWinsock1.GetData receivedData ' 接收数据' 处理接收到的数据End Sub在上述代码中,我们首先在Form_Load()事件中设置了服务器监听的端口号。

VBWinsock的属性和方法

VBWinsock的属性和方法

VBWinsock的属性和方法Winsock的方法属性Winsock 控件对用户来说是不可见的,它提供了访问TCP 和UDP 网络服务的方便途径。

Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的开发人员都可使用它。

为编写客户或服务器应用程序,不必了解TCP 的细节或调用低级的 Winsock APIs。

通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。

一、TCP 基础数据传输协议允许创建和维护与远程计算机的连接。

连接两台计算机就可彼此进行数据传输。

如果创建客户应用程序,就必须知道服务器计算机名或者IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用Connect 方法。

如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用Listen 方法。

当客户计算机需要连接时就会发生ConnectionRequest 事件。

为了完成连接,可调用ConnectionRequest 事件内的 Accept 方法。

建立连接后,任何一方计算机都可以收发数据。

为了发送数据,可调用SendData 方法。

当接收数据时会发生 DataArrival 事件。

调用 DataArrival 事件内的 GetData 方法就可获取数据。

二、UDP 基础用户数据文报协议 (UDP) 是一个无连接协议。

跟 TCP 的操作不同,计算机并不建立连接。

另外 UDP 应用程序可以是客户机,也可以是服务器。

为了传输数据,首先要设置客户计算机的 LocalPort 属性。

然后,服务器计算机只需将RemoteHost 设置为客户计算机的Internet 地址,并将 RemotePort 属性设置为跟客户计算机的 LocalPort 属性相同的端口,并调用 SendData 方法来着手发送信息。

vb中winsock简单实例

vb中winsock简单实例

vb中winsock简单实例VB中的Winsock简单实例Winsock是一种来自于VB的库,它允许我们通过网络进行数据传输。

使用Winsock可以在计算机之间建立网络连接,发送和接收数据包等。

本文将为您介绍如何在VB中创建和使用Winsock的简单实例。

首先,我们需要了解一些基本的网络概念。

在计算机网络中,有两种常见的通信协议:TCP和UDP。

TCP(传输控制协议)提供可靠的数据传输,而UDP(用户数据报协议)提供不可靠但更快的数据传输。

在本文中,我们将重点介绍使用TCP进行数据传输的Winsock实例。

第一步是在VB中添加Winsock控件。

打开VB开发环境,并在工具箱中找到Winsock控件。

将其拖放到您的表单中。

第二步是为Winsock控件设置属性。

选中Winsock控件,然后在属性窗口中设置以下属性:- LocalPort:这是本地使用的端口号。

您可以选择任意未被其他应用程序使用的端口号。

- Protocol:选择TCP协议。

- RemoteHost:指定远程主机的IP地址。

您可以输入主机名或IP地址。

- RemotePort:指定远程主机的端口号。

这是目的地主机上的应用程序正在监听的端口号。

第三步是编写VB代码来建立连接并发送数据。

在表单中的代码窗口中添加以下VB代码:Private Sub Command1_Click()Winsock1.Connect '建立与远程主机的连接End SubPrivate Sub Command2_Click()Winsock1.SendData "Hello World" '向远程主机发送数据End SubPrivate Sub Winsock1_Connect()MsgBox "连接成功" '连接成功时显示一条消息End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim data As StringWinsock1.GetData data '接收从远程主机传输过来的数据MsgBox "接收到的数据:" & dataEnd Sub在上面的代码中,Command1按钮的Click事件将建立与远程主机的连接。

VB网络编程中Winsock的使用

VB网络编程中Winsock的使用

VB网络编程中Winsock的使用♣frmclient窗体的设计内容窗体的配置内容如图3-2♣程序的代码private sub form_load()…指定远程主机的ip地址。

如果是localhost,代表的ip地址为127.0.0.1,并且也代表本机。

Tcpclient.RemoteHost=”localhost”…设置本机连接端口的localport属性的内容…请注意!必须是整体值tcpclient.remoteport=2000…设置窗体的标题内容Me.Caption=”frmclient”Label1.caption=”传送的文字”Label2.caption=”接收的文字”Cmdconnect.caption=”与主机连接”End subPrivate sub cmdconnect_click()…调用tcpclient控件的connect方法,来初始化与主机的连接请求tcpclient.connectend subprivate sub txtsend_change()…当txtsend控件的内容发生变化时,立即调用tcpclient控件的senddata方法,将txtsend控件的内容传送给主机tcpclient.senddata txtsend.textend subprivate sub tcpclient_dataarrival(byval bytestotal as long)…说明即将接收的数据类型dim strdata as string…调用tcpclient控件的getdata方法,将接收的数据以vbstring数据类型存放strdata变量之中。

Tcpclient.getdata strdata,vbstring…将strdata变量的内容,存放在txtoutput控件之中。

Txtreceive.text=strdataEnd sub♣程序的执行结果3-1-1如何允许更多客户端同时连接当您的应用程序架构是属于主从式架构时,一般来说,客户端应该不止一个而已。

在vb中如使用 winsock 控件

在vb中如使用 winsock 控件

在vb中如何使用 winsock 控件1.Winsock简介Windows下网络编程的规范-Windows Sockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。

2.Winsock规范Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。

此外,在一个特定版本Windows的基础上,Windows Sockets 也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。

因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。

遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets 兼容的,而Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。

3.通信基础:套接口通信的基础是套接口(Socket),一个套接口是通讯的一端。

在这一端上你可以找到与其对应的一个名字。

一个正在被使用的套接口都有它的类型和与其相关的进程。

4.客户机/服务器模型一个在建立分布式应用时最常用的范例便是客户机/服务器模型。

在这种方案中客户应用程序向服务器程序请求服务。

这种方式隐含了在建立客户机/服务器间通讯时的非对称性。

客户机/服务器模型工作时要求有一套为客户机和服务器所共识的惯例来保证服务能够被提供(或被接受)。

5.VB下winsock控件应用小程序设计在VB 中使用Winsock控件从Internet时间服务器获得标准格林尼治时间,再用转化后的北京时间校准系统时钟的小程序。

6.因时间关系,最终想做一个VB下基于Winsock的Email客户端软件,没来得及进行需求分析。

7.实现功能:邮件收发,附件下载。

vb中winsock简单实例 -回复

vb中winsock简单实例 -回复

vb中winsock简单实例-回复VB中Winsock简单实例Winsock是Visual Basic (VB) 中用于实现网络通信的类库。

它提供了许多功能,使开发人员能够轻松地创建基于网络的应用程序。

本文将介绍Winsock的基本概念,然后演示一个简单的Winsock实例,以帮助读者理解如何使用它来创建自己的网络应用程序。

第一部分:Winsock概述Winsock是Windows Sockets的缩写,是一种用于实现网络通信的API (应用程序编程接口)。

它允许开发人员使用一系列函数来创建、连接、发送和接收数据等操作。

Winsock通常用于TCP/IP协议栈上的网络通信,但也可以用于其他协议。

在VB中,我们可以使用Winsock控件来简化网络编程,而无需直接调用Winsock API。

控件内部封装了Winsock API的所有功能,并提供了一组事件和方法,可以更方便地实现网络通信。

第二部分:Winsock的基本用法要开始使用Winsock,首先需要在VB中添加Winsock控件。

可以在工具箱中找到控件(通常位于网络区域),然后将其拖放到窗体上。

在窗体上放置Winsock控件后,可以在代码中访问它的属性、方法和事件。

常用的属性有LocalPort、RemoteHost和RemotePort,分别用于设置本地端口号、远程主机和远程端口号。

例如,可以使用以下代码设置本地端口号为5000:vbWinsock1.LocalPort = 5000要连接到远程主机,可以使用以下代码:vbWinsock1.RemoteHost = "192.168.0.1"Winsock1.RemotePort = 80Winsock1.Connect连接完成后,可以使用以下代码发送数据:vbWinsock1.SendData "Hello, World!"接收数据时,Winsock会触发DataArrival事件,可以在事件处理程序中编写代码来处理接收到的数据。

VB winsock 控件以及相关属性

VB winsock 控件以及相关属性

VB winsock 控件以及相关属性下面是Winsock控件的相关属性,方法和事件。

(略去一些暂用不到的)*属性-------------------------------------------------------------------------LocalHostName | 本地机器名LocalIP | 本地机器IP地址LocalPort | 本地机器通信程序的端口(0<端口<65536)RemoteHost | 远程机器名RemotePort | 远程机器的通信程序端口state | 连接的当前状态(文后有详细说明)Protocal | 使用TCP或UDP协议(这里我们选‘0-sckTCPProtocal’)--------------------------------------------------------------------------*方法--------------------------------------------------------------------------ListenListen方法用于服务器程序,等待客户访问。

格式:Winsock对象.listenConnectConnect方法用于向远程主机发出连接请求格式:Winsock对象.connect [远程主机IP,远程端口]AcceptAccept方法用于接受一个连接请求格式:Winsock对象.accept Request IDSenddata此方法用于发送数据格式:Winsock对象.senddata 数据Getdata用来取得接收到的数据格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]Close关闭当前连接格式:Winsock对象.close*事件----------------------------------------------------------------------------Close | 远程机器关闭连接时触发Connect | 连接建立好,可以进行通信时触发(客户端)ConnectRequest | 有请求连接到达时产生(服务器端)DataArrival | 有数据到达时触发Error | 发生错误时发生SendProgress | 数据传送进度-----------------------------------------------------------------------------程序代码如下:--》服务器端程序(server.exe)先在窗体中放置Winsock控件(他在运行时是看不见的),属性采用默认值,再设置Form1的属性ShowInTaskBar为False,Visible为False(这样才有隐蔽性嘛).对于程序的自启动可手工在注册表“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”中增加键值"winserver"="c:\\windows\\server.exe"或配置文件Win.ini的Load,run写入"C:\windows\server.exe"来达到目的。

vb中winsock简单实例

vb中winsock简单实例

vb中winsock简单实例在VB中,我们可以使用Winsock控件来实现网络通讯。

下面是一个简单的Winsock实例:1. 在VB中,首先要确保启用了Microsoft Winsock Control,可以在VB的工具箱中找到它。

2. 将一个Winsock控件拖放到表单上。

3. 双击Winsock控件,在代码编辑器中会自动生成一个Winsock控件的事件过程。

4. 在Winsock控件的事件过程中编写代码以处理网络通讯。

下面是一个简单的例子,演示了如何使用Winsock控件进行基本的客户端和服务器通讯:```vbPrivate Sub Form_Load()' 设置服务器地址和端口号Winsock1.RemoteHost = "127.0.0.1"Winsock1.RemotePort = 1234End Sub' 连接服务器按钮点击事件Private Sub cmdConnect_Click()Winsock1.Connect ' 连接到服务器End Sub' 断开连接按钮点击事件Private Sub cmdDisconnect_Click()If Winsock1.State <> sckClosed Then Winsock1.Close ' 断开连接End IfEnd Sub' 连接完成事件Private Sub Winsock1_Connect()MsgBox "已连接到服务器!"End Sub' 断开连接事件Private Sub Winsock1_Close()MsgBox "与服务器断开连接!"End Sub' 发送消息按钮点击事件Private Sub cmdSendMessage_Click()If Winsock1.State = sckConnected Then ' 发送消息到服务器Winsock1.SendData txtMessage.Text ElseMsgBox "未连接到服务器!"End IfEnd Sub' 接收消息事件Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim strData As StringWinsock1.GetData strData ' 从服务器接收数据MsgBox "接收到消息:" & strDataEnd Sub```在上面的例子中,载入表单时,代码设置了要连接的服务器地址和端口号。

VB Winsock

VB Winsock

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成为当前最流行的网络通信应用程序接口之一。

VB Winsock控件(UDP协议)的使用

VB Winsock控件(UDP协议)的使用
e Sub Command1_Click() Winsock1.SendData Text1.Text End Sub
Private Sub Form_Load() Winsock1.Bind 1000, LocalIP End Sub
第二个工程的代码:
2
Private Sub Form_Load() Winsock1.Bind 1001, LocalIP End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim a As String Winsock1.GetData a, vbString Text1.Text = a End Sub
创建一个Command控件
创建一个Text控件
再新建一个工程,创建一个Winsock控件,LocalPort填本地端口,RemotePort填远程端口, Protocol选1 – sckUDPProtocol(本例本地端口为1001,远程端口为1000)
创建一个Text控件
注意:本地端口和远程端口不能重合
Winsock控件是VB6.0的一个新的功能,它可以进行两台机器之间的通讯,它分两种协议, 一种是TCP协议,即Transmission Control Protocol 传输控制协议,另一种则是UDP协议, 即User Datagram Protocol用户数据包协议 ,也就是我要讲的。 打开VB6.0,选择Microsoft Winsock Control 6.0,在左边的选择框中打勾。
控件工具箱中也就多了这个图标(放大的):
1
新建一个工程,创建一个Winsock控件,RemoteHost填要连接到的机器的主机名或IP, LocalPort填本地端口,RemotePort填远程端口,Protocol选1 – sckUDPProtocol(本例本 地端口为1000,远程端口为1001)

vb winsock汇总

vb winsock汇总

我很早就想写些技术的东东了,但好久都没有写,因为没有时间,自己又很累,又有点懒,但是,看到我的同事和朋友们的技术提高不是很快,就把我掌握的编程技术总结下来,以便我的朋友们能学到好的东西。

我也奉劝看过我的BLOG的朋友们,把自己知道的计算机知识,告诉你认识的人吧,因为,计算机知识更新太快,很容易过时,所以,废弃的也快。

好了,进入我的VB Socket 编程。

(鼠标又坏了,尽量少些文字介绍主要的做法)关于客户端和服务器端的通信先介绍客户端程序的做法:首先,要建立客户端的工程。

要把Winsock控件引用到工程中,做法:菜单[工程]->[部件]->Micorosoft winsock controls 6.0在画面上添加1个Winsock控件:命名:winsockClient 属性Protocol 设定 0-sckTCPProtocol客户端连接:winsockClient .Close'IPwinsockClient .RemoteHost = "192.168.1.105"'PortwinsockClient .RemotePort = '20000'ConnectwinsockClient .Connect客户端送信:If winsockClient .State = sckConnected ThenwinsockClient .SendDataDataElse'errorCall ShowMessageEnd If客户端接收数据:Private Sub winsockClient _DataArrival(ByVal bytesTotal As Long)'接收winsockClient .GetData Receive'If winsockClient .State = sckConnected Then'再送信winsockClient .SendData bytSendElse'ErrorCall ShowMessageEnd IfEnd Sub客户端winsockClient的Error 处理:Private Sub winsockClient _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)On Error Resume Next'连接不能的情况下If winsockClient .State <> sckConnected Then。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语法:object_Close( )
object 所在处代表一个对象表达式,其值是WinSock控件的对象。
参数:None
八、ConnectionRequest 事件
当远程计算机请求连接时出现。
仅适用于 TCP 服务器应用程序。在请求一个新连接时激活该事件。激活事件之后,RemoteHostIP 和 RemotePort 属性存储有关客户的信息。
sckInvalidArg
40014
传递给函数的参数格式不确定,或者不在指定范围内。
sckSuccess
40017
成功。
sckUnsupported
40018
不受支持的变量类型。
sckInvalidOp
40020
在当前状态下的无效操作
sckOutOfRange
10093
应首先调用 WinsockInit。
sckHostNotFound
11001
授权应答:未找到主机。
SckHostNotFoundTryAgain
11002
非授权应答:未找到主机。
SckNonRecoverableError
11003
不可恢复的错误。
sckConnectAborted
11053
由于超时或者其它失败而中止连接。
sckConnectionReset
10054
通过远端重新设置连接。
SckNoBufferSpace
10055
没有可用的缓冲空间。
SckAlreadyConnected
10056
40021
参数越界。
sckWrongProtocol
40026
所请求的事务或请求本身的错误协议
sckOpCanceled
1004
取消操作。
sckInvalidArgument
10014
所请求的地址是广播地址,但未设置标记
sckWouldBlock
说明
服务器可决定是否接受连接。如果不接受新连接,则同级人员(客户)将得到 Close 事件。
(在一个新控件示例上)用 Accept 方法接受新连接。
九、Connect 事件 (Winsock 控件)
当连接操作完成后产生。
语法:object.Connect()
object 所在处代表一个对象表达式,其值为一个 Winsock 控件。
三、Accept 方法
仅适用于 TCP 服务器应用程序。在处理 ConnectionRequest 事件时用这个方法接受新连接。
语法:object.Accept requestID
object 所在处代表对象表达式,其值是WinSock控件的对象。
数据类型:Long
返回值:Void
(ByVal requestID As Long)
'测试 State 属性,如果当前连接是打开的话,
'则关闭连接。
If Winsock1.State <> sckClosed Then Winsock1.Close
'将 requestID 参数值传递给 Accept 方法。
Winsock1.Accept requestID
Source As String, HelpFile as String, HelpContext As Long, CancelDisplay As Boolean)
Error 事件的语法包含下面部分:
部分
描述
object
对象表达式,其值是WinSock控件的对象。
就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生
ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。建立连接后,
任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。
number
定义错误代码的整数。请参阅下述有关常数的“设置值”。
description
包含错误信息的字符串。
Scode
长 SCODE
Source
描述错误来源的字符串。
HelpFile
包含帮助文件名的字符串。
HelpContext
Help 文件上下文。
调用 DataArrival 事件内的 GetData 方法就可获取数据。
二、UDP 基础
用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。
另外 UDP 应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置客户计算机的 LocalPort 属性。
CancelDisplay
指示是否取消显示。缺省值为 False,以此显示缺省的错误信息框。如果不想使用缺省的信息框,则将 CancelDisplay 设置成 True。
设置值
number 的设置值是:
常数

描述
sckOutOfMemory
7
内存不足
End Sub
应该在新的控件示例(不是侦听状态下的示例)中使用 Accept 方法。
四、Bind 方法
指定用于 TCP 连接的 LocalPort 和 LocalIP。如果有多协议适配卡,就用这个方法。
语法:object.Bind LocalPort, LocalIP
Bind 方法的语法包含下面部分
对客户机和服务器应用程序关闭 TCP 连接或侦听套接字。
语法:object.Close
object 所在处代表对象表达式,其值是WinSock控件的对象。
参数:None
返回值:Void
七、Close 事件
当远程计算机关闭连接时出现。应用程序应正确使用 Close 方法关闭 TCP 连接。
sckMsgTooBig
10040
数据报太大,不适于缓冲区的要求,因而被截断。
sckPortNotSupported
10043
不支持指定的端口。
sckAddressInUse
10048
地址在使用中。
SckAddressNotAvailable
10049
语法:object_ConnectionRequest (requestID As Long)
ConnectionRequest 的语法有包含下面部分:
部分
描述
object
对象表达式,其值是WinSock控件的对象。
RequestID
新连接请求标识。应把此参数传递给第二个控件示例上的 Accept 方法。
说明
使用 Connect 事件确认连接是否已经成功。
十、Error 事件
无论何时,只要后台处理中出现错误(例如,连接失败,或者在后台收发数据失败)事件就会出现。
语法
object_Error(number As Integer, Description As String, Scode As Long,
sckInval
属性值无效。
sckGetNotSupported
394
属性不可读。
sckSetNotSupported
383
属性是只读的。
sckBadState
40006
所请求的事务或请求本身的错误协议或者错误连接状态。
通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。
一、TCP 基础
数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。
如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),
还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。如果创建服务器应用程序,
属性: BytesReceived属性,Index属性,LocalHostName属性,LocalIP属性,LocalPort属性,Object属性,
Name属性,Parent属性,Protocol属性,RemoteHost属性,RemoteHostIP属性,RemotePort属性,SocketHandle属性,
State属性,Tag属性。
事件: Close事件,Connet事件,ConnectionRequest事件,DataArrival事件,Error事件,SendComplete事件,SendProgress事件。
方法: Accept方法,Bind方法,Close方法(WinSock控件),Listen方法,PeekData方法,SendData方法,GetData方法(WinSock控件)。
来自本地机器的不可用地址。
SckNetworkSubsystemFiled
10050
网络子系统失败。
sckNetworkUnreachable
10051
此时不能从主机到达网络。
sckNetReset
10052
在设置SO_KEEPALIVE 时连接超时。
已连接套接字。
SckNotConnected
10057
未连接套接字。
SckSocketShutdown
10058
已关闭套接字。
相关文档
最新文档