关键词搜索

源码搜索 ×
×

vb6学习笔记--winsocket.ocx

发布2022-07-28浏览588次

详情内容

一. 引入ocx,

在vb编辑器中,按住ctrl+t,并在打开的部件窗口勾选microsoft winsocket control 6.0,并确定。​​​​​

 二.winsocket的常用属性和方法
 

  1. 属性:
  2. 1.Localip: 此属性值返回的是当前主机ip
  3. 2.localport: 此属性值返回的是当前占用端口号
  4. 3.proctocol: 此属性返回的是协议号
  5. 4.RemoteHost: 此属性返回的是远程主机的ip
  6. 5.Remoteport: 此属性返回的是远程主机的端口号
  7. 6.BytesReceived: 此属性返回接收的数据字节数
  8. 7.state: 此属性返回当前的状态,常用的值:0-未连接 6-连接中 7-连接成功 9-连接失败
  9. 方法:
  10. connect: 这个方法主要用于客户端,向后端递交连接的请求
  11. Close: 这个方法用于关闭winsock的连接
  12. SendData: 这个方法用于发送数据包(基于socket属性=7的情况)
  13. GetData: 这个方法用于接收数据包(基于socket属性=7的情况)
  14. Listen: 这个方法主要用在后端,用于打开监听,客户端的请求
  15. Accept: 这个方法用在后端ConnectionRequest事件中,接收用户连接的请求,在后面要跟上requestID

三.winscock的常用事件

1.Connect:在winsocket.connect后触发,触发时state属性会随之改变

2.ConnectionRequest:这个属性在远程主机发送connect时改变这时,允许请求的写法为

  1. Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  2. If Winsock1.State <> sckClosed Then '如果状态不属于关闭模式,则保持接收连接
  3. Winsock1.Close
  4. Winsock1.Accept requestID
  5. end if
  6. end sub

3.DataArrival:在远程主机发送数据后触发,vb可以在这个属性中接收接收远程主机发送的数据,接收字符串一般会乱码,我们可以这样写

  1. Private Sub Winsock1_DataArrival( ByVal bytesTotal As Long)
  2. Dim bb() As Byte '定位bb数组为byte数据类型
  3. Winsock1.GetData bb() ’把得到的数据放到bb数组中
  4. data1 = StrConv(bb(), vbUnicode) '将接收的数据转为unicode字符
  5. print data1 '输出的即为字符串
  6. end sub

4.SendProgress:在senddata方法中触发

5.SendComplete:在发送数据包(senddata)完成后触发

6.Error:在socket通信中出现任何错误都会出现,输出产生错误错误号和错误描述的方法如下

  1. Private 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)
  2. debug.print "错误号" & number
  3. debug.print "描述" & Description
  4. End Sub

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载