Winsock控件使用手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Winsock控件使用手册
TCP基本知识
TCP(Transfer Control Protocol)允许你创建并维护一个与远程计算机的连接,使用该连接,两台计算机之间就可以交换数据了。
如果你在创建一个客户应用程序,你必须知道服务器计算机的名字
用RemoteHost属性,监听的端口号RemotePort属性,调用Connect方法。
创建服务器应用程序,设置要监听的端口号,调用Listen方法。
当客户建立连接请求时,产生ConnectionRequest事件。要完成该连接,在ConnectionRequest 事件中调用Accept方法。
一旦建立了连接,两台计算机之间就可以发送和接受数据了。
发送数据,调用SendData方法。
接受数据,产生DataArrival事件。在DataArrival事件中调用GetData方法来检取数据。
UDP基本知识
UDP(User Datagram Protocol)是无连接的协议。
与TCP操作不同,计算机并不建立一个连接。并且,UDP应用程序可以是客户也可以是服务器。
传输数据,设置客户计算机的LocalPort属性,指发送方只需要将RemoteHost属性设置为客户计算机及指接收方的IP地址,将RemotePort属性设置为客户计算机上的LocalPort,调用SendData发送数据。客户计算机在DataArrival中使用GetData检取数据。
Winsock控件的属性
BytesReceived属性,
LocalHostName属性,
LocalIP属性,
LocalPort属性,
RemoteHost属性(ActiveX控件),
SocketHandle属性,
State属性(Winsock控件),
Protocol属性(Winsock控件),
Name属性,
Parent属性,
RemoteHost属性(ActiveX控件),
RemotePort属性(ActiveX控件),
Index属性(ActiveX控件),
Tag属性(ActiveX控件),
Object属性(ActiveX控件)。
Winsock控件的方法
Accept方法,
Bind方法,
Close方法(Winsock控件),
Listen方法,PeerData方法,
SendData方法,
GetData方法(WinSock控件),
GetData方法(ActiveX控件)。
Winsock控件的事件
Close事件,
ConnectionRequest事件,
DataArrival事件,
SendComplete事件,
SendProgress事件T注:该事件表示开始发送了,发送中,好像一般用不到,所以没有说明Error事件,
Connect事件(Winsock控件),
Connect事件。
以下的内容以字母为序排列
Accept方法:只对于TCP服务器应用程序适用。该方法用于在处理ConnectionRequest事件时接受连入请求。
语法object.Accept requested
object是Winsock控件的对象表达式。数据类型Long 返回值Void
说明:
在ConnectionRequest事件中使用Accept方法。
ConnectionRequest事件相应的参数RequestID也应传递给Accept方法。下面是一个例子:
Private Sub Winsock1_ConnectionRequest _(ByVal requestID As Long)
' Close the connection if it is currently open
' by testing the State property.
If Winsock1.State <> sckClosed Then
Winsock1.Close
' Pass the value of the requestID parameter to the' Accept method.
Winsock1.Accept requested
End Sub
下面示例的例子列出了使用TCP连接Winsock控件必须的代码,使用RequestID标识请求,该参数传递给接受请求的Accept方法。
Private Sub WinsockTCP_ConnectionRequest _(requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close
Winsock.Accept requested
endif
End Sub
Bind方法
指定TCP连接中使用的LocalPort和LocalIP。
语法
object.Bind LocalPort, LocalIP
Bind方法的语法有如下几个部分:
部分描述
object 一个Winsock控件的对象表达式
localPort 建立连接所使用的端口号
localIP 建立连接所使用的本地IP地址
说明
在调用Listen方法之前你必须调用Bind方法T注:未必:)在UDP通讯的服务器端,倒是要先调用BIND方法!
BytesReceived属性
返回接受数据的数量(当前接受缓冲区中的数据)。使用GetData方法检取数据。
语法object.BytesReceived
返回值Long
Close事件
当远程计算机关闭连接,只有TCP是"连接"的,UDP是无"连接"的,应用程序应使用Close方法正确地关闭一个TCP连接。
语法object_Close()
Close方法
关闭客户或服务器应用程序的TCP连接或监听插槽。
语法object.Close
Connect 事件当一个Connect 操作完成时发生。
语法object.Connect()
使用Connect 事件确认已经成功建立了
Connect方法
返回与远程计算机的连接
语法object.Connect remoteHost, remotePort
Connect方法的语法有如下几个部分:
部分描述
object 一个Winsock控件的对象表达式
remoteHos 要连接的远程计算机的名字
remotePort 要连接的远程计算机的端口号
返回值没有
当试图建立一个TCP连接时,你必须调用Connect方法。
ConnectionRequest事件
当远程计算机请求一个连接时产生该事件。只对于TCP服务器应用程序适用。
当有一个连入请求时就触发该事件。
该事件触发之后,RemoteHostIP和RemotePort属性中保存了客户机的信息。