vb6学习笔记--winsocket.ocx

一. 引入ocx,

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

 二.winsocket的常用属性和方法
 

属性:
1.Localip:       此属性值返回的是当前主机ip
2.localport:     此属性值返回的是当前占用端口号
3.proctocol:     此属性返回的是协议号
4.RemoteHost:   此属性返回的是远程主机的ip
5.Remoteport:   此属性返回的是远程主机的端口号
6.BytesReceived: 此属性返回接收的数据字节数
7.state:         此属性返回当前的状态,常用的值:0-未连接 6-连接中 7-连接成功 9-连接失败

方法:
connect:  这个方法主要用于客户端,向后端递交连接的请求
Close:    这个方法用于关闭winsock的连接
SendData: 这个方法用于发送数据包(基于socket属性=7的情况)
GetData:  这个方法用于接收数据包(基于socket属性=7的情况)
Listen:  这个方法主要用在后端,用于打开监听,客户端的请求
Accept:  这个方法用在后端ConnectionRequest事件中,接收用户连接的请求,在后面要跟上requestID

三.winscock的常用事件

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

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

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

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

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

4.SendProgress:在senddata方法中触发

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工冷少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值