📄 bsocket.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "TCPSocket"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public Enum bSocketMode
StreamMode
EventMode
End Enum
Public name As String
Private Connected As Boolean
Private ByteBuffer() As Byte
Private StringBuffer As String
Public SocketMode As bSocketMode
Public WithEvents HardSocket As Socket
Attribute HardSocket.VB_VarHelpID = -1
Public EventClass As String
Public LastRequest As Long
Public Sub Connect(Host As String, Port As Integer)
HardSocket.Connect Host, Port
End Sub
Public Sub Disconnect()
HardSocket.CloseSocket
End Sub
Public Sub Listen(Port As Integer)
HardSocket.LocalPort = Port
HardSocket.Listen
End Sub
Public Sub SetMode(NewSocketMode As bSocketMode)
SocketMode = NewSocketMode
End Sub
Public Sub SetEventClass(ClassName As String)
EventClass = ClassName
End Sub
Public Function ReadByteBuffer() As Byte()
Output = PeekByteBuffer
ReadByteBuffer = Output
End Function
Public Function ReadStringBuffer() As String
Do
Output = PeekStringBuffer
StringBuffer = ""
DoEvents
Sleep 10
Loop While Output = ""
ReadStringBuffer = Output
End Function
Public Function PeekByteBuffer() As Byte()
PeekByteBuffer = ByteBuffer
End Function
Public Function PeekStringBuffer() As String
PeekStringBuffer = StringBuffer
End Function
Public Sub WriteStringBuffer(Value As String)
While Connected = False
DoEvents
Sleep 10
Wend
HardSocket.SendData Value
End Sub
Public Sub WriteByteBuffer(Bytes() As Byte)
HardSocket.SendData Bytes
End Sub
Public Sub ClearBuffers()
StringBuffer = ""
End Sub
Public Sub AcceptRequest(Client As Long)
HardSocket.Accept Client
End Sub
Private Sub Class_Initialize()
Set HardSocket = New Socket
Connected = False
End Sub
Public Function GetLastRequest() As Long
Output = LastRequest
LastRequest = 0
GetLastRequest = Output
End Function
Private Sub HardSocket_OnClose()
If SocketMode = EventMode Then
getObject(EventClass).ExecuteVoid "event_" & name & "_Close", "", "", "", "", "", "", "", ""
End If
Connected = False
End Sub
Private Sub HardSocket_OnConnect()
If SocketMode = EventMode Then
getObject(EventClass).ExecuteVoid "event_" & name & "_Connect", "", "", "", "", "", "", "", ""
End If
Connected = True
End Sub
Private Sub HardSocket_OnConnectionRequest(ByVal requestID As Long)
LastRequest = requestID
If SocketMode = EventMode Then
getObject(EventClass).ExecuteVoid "event_" & name & "_Request", "", "", "", "", "", "", "", ""
End If
End Sub
Private Sub HardSocket_OnDataArrival(ByVal bytesTotal As Long)
Dim DataStr As String
Dim DataByte() As Byte
HardSocket.PeekData DataByte, vbByte + vbArray
HardSocket.GetData DataStr
ByteBuffer = DataByte
StringBuffer = StringBuffer & DataStr
If SocketMode = EventMode Then
getObject(EventClass).ExecuteVoid "event_" & name & "_DataArrival", "", "", "", "", "", "", "", ""
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -