⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsocket.cls

📁 用VB实现的编译器的源代码
💻 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 + -