winsock

今天上午学习了,winsock的使用的过程,现将学习的收获总结如下:

 

Winsock的属性:

 

1  Localport:设定本机的端口号。端口号从065536,其中1024一下一般为专用的端口,如21ftp默认端口。80http默认端口。

2  protocol :选择的协议,包括tcpudp协议,采用tcp协议需要在数据传输之前建立连接,而采用udp形式在进行数据传输之前不需要建立通讯连接。

3  remotehost  用来表示远程主机。可以直接用ip表示,也可以用主机名“popsinaCom.cn  

4  remoteport 属性用来表示你需要连接的主机的端口号。

5  localhostname 属性 Localhost用来返回本地主机的名字

6  localip 返回本地主机的ip

7  state 属性 返回我winsock的连接的状态

 

Winsock事件的方法

 

1.    Accept 将产生连接请求事件时调用该方法。

2.    Close  系方法用来关闭连接,当一方调用此方法,另一方状态为零

3.    Connect 用来连接远程服务器。

4.    Listen 用来监听客户机的连接的请求

5.    Getdata 用来获取远程主机发来的数据

6.    Senddata 用来向远程主机发送数据

 

Winsock 控件的事件

 

1.       close 一方调用close方法时另一方产生close 事件

2.       connection request 事件 当客户端采用connect方法向远程服务器发出连接请求时,服务器端将产生connectrequest ,在此可以调用 accept 方法

3.       dataarrival 当数据到达时将产生 dataarrival事件

4.        

一下是今天的vb 操作实例:

//MODULE

Public Function GetWinSockState(tcpsock As Winsock) As String

    Dim strTmp As String

    On Error Resume Next

 

    Select Case tcpsock.State

        Case 0

            strTmp = "Closed"

        Case 1

            strTmp = "Open"

        Case 2

            strTmp = "Listening"

        Case 3

            strTmp = "Connection pending"

        Case 4

            strTmp = "Resolving host"

        Case 5

            strTmp = "Host resolved"

        Case 6

            strTmp = "Connecting"

        Case 7

            strTmp = "Connected"

        Case 8

            strTmp = "Peer is closing the connection"

        Case 9

            strTmp = "Error"

    End Select

   

    GetWinSockState = strTmp

   

End Function

//FORM1 程序的代码 

Private Sub Command3_Click()

Winsock1.SendData "123 "

End Sub

Private Sub Form_Load()

End Sub

Private Sub winsock2_connectionrequest(ByVal requestid As Long)

With Winsock2

If .State <> sckClosed Then .Close

.Accept requestid

End With

MsgBox "connect request"

End Sub

Private Sub winsock2_dataarrival(ByVal bytestotal As Long)

Dim strinfo As String

Winsock2.GetData strinfo

If strinfo <> Null Then

MsgBox "收到消息"

End If

Winsock2.SendData "hello"

End Sub

 

Private Sub Command1_Click()

With Winsock1

.Close

.Protocol = sckTCPProtocol

.RemoteHost = "127.0.0.1"

.RemotePort = 8000

.Connect

 MsgBox GetWinSockState(Winsock1)

End With

End Sub

 

Private Sub Command4_Click()

 

With Winsock2

.Close

.Protocol = sckTCPProtocol

.LocalPort = 8000

.Listen

MsgBox GetWinSockState(Winsock2)

End With

 

End Sub

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值