VERSION 5.00
Object = "{48E59290-9880-11CF-9754-00AA00C00908}#1.0#0"; "msinet.ocx"
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.ocx"
Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0"; "shdocvw.dll"
Begin VB.Form FrmBrowser 
   BorderStyle     =   1  'Fest Einfach
   Caption         =   "SnG Habbo Alien:: Browser"
   ClientHeight    =   8730
   ClientLeft      =   1950
   ClientTop       =   1035
   ClientWidth     =   15120
   BeginProperty Font 
      Name            =   "Tahoma"
      Size            =   6.75
      Charset         =   0
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   8730
   ScaleWidth      =   15120
   StartUpPosition =   2  'Bildschirmmitte
   Begin InetCtlsObjects.Inet HabboNet 
      Left            =   1560
      Top             =   1560
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
   End
   Begin MSWinsockLib.Winsock SckServer 
      Left            =   2160
      Top             =   1680
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   393216
   End
   Begin MSWinsockLib.Winsock SckClient 
      Left            =   1080
      Top             =   1680
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   393216
   End
   Begin SHDocVwCtl.WebBrowser HabboBrowser 
      Height          =   8643
      Left            =   45
      TabIndex        =   0
      Top             =   45
      Width           =   15008
      ExtentX         =   26472
      ExtentY         =   15245
      ViewMode        =   0
      Offline         =   0
      Silent          =   0
      RegisterAsBrowser=   0
      RegisterAsDropTarget=   1
      AutoArrange     =   0   'False
      NoClientEdge    =   0   'False
      AlignLeft       =   0   'False
      NoWebView       =   0   'False
      HideFileNames   =   0   'False
      SingleClick     =   0   'False
      SingleSelection =   0   'False
      NoFolders       =   0   'False
      Transparent     =   0   'False
      ViewID          =   "{0057D0E0-3573-11CF-AE69-08002B2E1262}"
      Location        =   ""
   End
End
Attribute VB_Name = "FrmBrowser"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Public DCR As String
Public LocalHost As String
Public InfoHost As String
Public InfoPort As String
Public MusPort As String
Public MusHost As String
Public ExternalVariables As String
Public ExternalTexts As String
Public SSOTicket As String
Public RC4E As New clsHabboRC4
Public RC4D As New clsHabboRC4
Public ClientPackets As New clsQueue
Public ClientPacketsFunction As Boolean
Public ServerPacketsJoin As New clsQueue
Public ServerPacketsSplit As New clsQueue
Public PublicKeySet As Boolean
Public SentData As Boolean
Public PacketSplitted As Boolean
Public HabboLoaderPart As String
Public PacketLogger As Boolean
Public ClientPacket As String
Public ServerPacket As String
Public Decrypted_ClientPacket As String

Sub Form_Load()

ClientPackets.Class_Initialize
ServerPacketsJoin.Class_Initialize
ServerPacketsSplit.Class_Initialize

End Sub

Private Function SplitItUnescape(SiteSource As String) As String

SplitItUnescape = Replace(SiteSource, "\" & Chr(34), Chr(34))  ' \" -> "
SplitItUnescape = Replace(SplitItUnescape, Chr(34) & "\", Chr(34))  ' "\ -> "
SplitItUnescape = Replace(SplitItUnescape, "\" & Chr(39), Chr(39))  ' \' -> '
SplitItUnescape = Replace(SplitItUnescape, Chr(39) & "\", Chr(39))  ' '\ -> '
SplitItUnescape = Replace(SplitItUnescape, "\>", ">")  ' \> -> >
SplitItUnescape = Replace(SplitItUnescape, "\n", vbNewLine) ' \n -> NewLine

End Function

Public Function SplitIt(SiteURL As String)

' Get the Source of the Habbo Login Page
Dim SiteSource As String
SiteSource = GetUrlSource(SiteURL)

If InStr(SiteSource, "HabboClientUtils.extWrite") Then
SiteSource = Split(Split(SiteSource, "HabboClientUtils.extWrite(" & Chr(34))(1), Chr(34) & ");")(0)
SiteSource = SplitItUnescape(SiteSource)
End If

If InStr(SiteSource, "hotel-closed-medium") Then
Dim OnlineTime As String
OnlineTime = Split(Split(SiteSource, "hotel-closed-medium" & Chr(34) & ">")(1), "</div>")(0)
FrmConnect.txt_status.Text = "Status: Hotel closed. Onlinetime of selected hotel: " & OnlineTime
Exit Function
End If

If InStr(SiteSource, "<noscript>") Then
SiteSource = Split(SiteSource, "<noscript>")(1)
End If
Do
DoEvents
Loop Until FrmBrowser.HabboNet.StillExecuting = False

FrmConnect.txt_status.Text = "Status: Getting Infos for loader.html..."

HabboLoaderPart = "<object classid=" & Chr(34) & "clsid:166B1BCA-3F9C-11CF-8075-444553540000" & Split(Split(SiteSource, "<object classid=" & Chr(34) & "clsid:166B1BCA-3F9C-11CF-8075-444553540000")(1), "</object>")(0) & "</object>"

' DCR Link
If FrmSettings.txt_param_dcr.Text <> Empty Then
    DCR = Split(Split(HabboLoaderPart, FrmSettings.txt_param_dcr.Text)(1), ">")(0)
    If FrmSettings.txt_value_dcr.Text <> Empty Then
        DCR = Split(DCR, FrmSettings.txt_value_dcr.Text & "=")(1)
        If InStr(DCR, ";") Then DCR = Split(DCR, ";")(0)
        If InStr(DCR, Chr(34)) Then DCR = Split(DCR, Chr(34))(0)
    Else
        DCR = Split(Split(DCR, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found DCR Link - " & DCR
Else
    MsgBox "Invalid DCR Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' External Texts
If FrmSettings.txt_param_externaltexts.Text <> Empty Then
    ExternalTexts = Split(Split(HabboLoaderPart, FrmSettings.txt_param_externaltexts.Text)(1), ">")(0)
    If FrmSettings.txt_value_externaltexts.Text <> Empty Then
        ExternalTexts = Split(ExternalTexts, FrmSettings.txt_value_externaltexts.Text & "=")(1)
        If InStr(ExternalTexts, ";") Then ExternalTexts = Split(ExternalTexts, ";")(0)
        If InStr(ExternalTexts, Chr(34)) Then ExternalTexts = Split(ExternalTexts, Chr(34))(0)
    Else
        ExternalTexts = Split(Split(ExternalTexts, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found External Texts Link - " & ExternalTexts
Else
    MsgBox "Invalid External Texts Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' External Variables
If FrmSettings.txt_param_externalvariables.Text <> Empty Then
    ExternalVariables = Split(Split(HabboLoaderPart, FrmSettings.txt_param_externalvariables.Text)(1), ">")(0)
    If FrmSettings.txt_value_externalvariables.Text <> Empty Then
        ExternalVariables = Split(ExternalVariables, FrmSettings.txt_value_externalvariables.Text & "=")(1)
        If InStr(ExternalVariables, ";") Then ExternalVariables = Split(ExternalVariables, ";")(0)
        If InStr(ExternalVariables, Chr(34)) Then ExternalVariables = Split(ExternalVariables, Chr(34))(0)
    Else
        ExternalVariables = Split(Split(ExternalVariables, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found External Variables Link - " & ExternalVariables
Else
    MsgBox "Invalid External Variables Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' SSO Ticket
If FrmSettings.txt_param_ssoticket.Text <> Empty Then
    SSOTicket = Split(Split(HabboLoaderPart, FrmSettings.txt_param_ssoticket.Text)(1), ">")(0)
    If FrmSettings.txt_value_ssoticket.Text <> Empty Then
        SSOTicket = Split(SSOTicket, FrmSettings.txt_value_ssoticket.Text & "=")(1)
        If InStr(SSOTicket, ";") Then SSOTicket = Split(SSOTicket, ";")(0)
        If InStr(SSOTicket, Chr(34)) Then SSOTicket = Split(SSOTicket, Chr(34))(0)
    Else
        SSOTicket = Split(Split(SSOTicket, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found SSO Ticket - " & SSOTicket
Else
    MsgBox "Invalid SSO Ticket Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' Info Host | IP
If FrmSettings.txt_param_infohost.Text <> Empty Then
    LocalHost = Split(Split(HabboLoaderPart, FrmSettings.txt_param_infohost.Text)(1), ">")(0)
    If FrmSettings.txt_value_infohost.Text <> Empty Then
        LocalHost = Split(LocalHost, FrmSettings.txt_value_infohost.Text & "=")(1)
        If InStr(LocalHost, ";") Then LocalHost = Split(LocalHost, ";")(0)
        If InStr(LocalHost, Chr(34)) Then LocalHost = Split(LocalHost, Chr(34))(0)
    Else
        LocalHost = Split(Split(LocalHost, "=" & Chr(34))(1), Chr(34))(0)
    End If
    InfoHost = "SnGScriptConsole"
    FrmConnect.txt_status.Text = "Status: Found Info Host | IP - " & LocalHost
Else
    MsgBox "Invalid Info Host | IP Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' Info Port
If FrmSettings.txt_param_infoport.Text <> Empty Then
    InfoPort = Split(Split(HabboLoaderPart, FrmSettings.txt_param_infoport.Text)(1), ">")(0)
    If FrmSettings.txt_value_infoport.Text <> Empty Then
        InfoPort = Split(InfoPort, FrmSettings.txt_value_infoport.Text & "=")(1)
        If InStr(InfoPort, ";") Then InfoPort = Split(InfoPort, ";")(0)
        If InStr(InfoPort, Chr(34)) Then InfoPort = Split(InfoPort, Chr(34))(0)
    Else
        InfoPort = Split(Split(InfoPort, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found Info Port - " & InfoPort
Else
    MsgBox "Invalid Info Port Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' MUS Host | IP
If FrmSettings.txt_param_mushost.Text <> Empty Then
    MusHost = Split(Split(HabboLoaderPart, FrmSettings.txt_param_mushost.Text)(1), ">")(0)
    If FrmSettings.txt_value_mushost.Text <> Empty Then
        MusHost = Split(MusHost, FrmSettings.txt_value_mushost.Text & "=")(1)
        If InStr(MusHost, ";") Then MusHost = Split(MusHost, ";")(0)
        If InStr(MusHost, Chr(34)) Then MusHost = Split(MusHost, Chr(34))(0)
    Else
        MusHost = Split(Split(MusHost, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found Mus Host | IP - " & MusHost
Else
    MsgBox "Invalid MUS Host Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

' MUS Port
If FrmSettings.txt_param_musport.Text <> Empty Then
    MusPort = Split(Split(HabboLoaderPart, FrmSettings.txt_param_musport.Text)(1), ">")(0)
    If FrmSettings.txt_value_musport.Text <> Empty Then
        MusPort = Split(MusPort, FrmSettings.txt_value_musport.Text & "=")(1)
        If InStr(MusPort, ";") Then MusPort = Split(MusPort, ";")(0)
        If InStr(MusPort, Chr(34)) Then MusPort = Split(MusPort, Chr(34))(0)
    Else
        MusPort = Split(Split(MusPort, "=" & Chr(34))(1), Chr(34))(0)
    End If
    FrmConnect.txt_status.Text = "Status: Found MUS Port - " & MusPort
Else
    MsgBox "Invalid MUS Port Loader Settings. Please check your Loader Settings."
    FrmSettings.Show
    Exit Function
End If

HabboLoaderPart = Replace(HabboLoaderPart, FrmSettings.txt_value_infohost.Text & "=" & LocalHost, FrmSettings.txt_value_infohost.Text & "=" & InfoHost)

' Close the Connection if Sockets are connected (from an old connection)
SckServer.Close
SckClient.Close

' Set the Connection Details for Sockets
SckServer.RemoteHost = LocalHost
SckServer.RemotePort = InfoPort
SckClient.LocalPort = InfoPort
SckClient.Listen

' Call the Loader Gernerator and Loader
LoadingPage ("loader.html")

Exit Function

LoginFailed:
            FrmConnect.txt_status.Text = "Status: Login failed..."
            FrmBrowser.Hide
            FrmConnect.cbo_hotel.Enabled = True
            FrmConnect.txt_username.Enabled = True
            FrmConnect.txt_password.Enabled = True
            FrmConnect.cmd_logout.Enabled = False
            FrmConnect.Show
            Exit Function

End Function

Private Function LoadingPage(FileName As String)

Dim LoaderFileName As String
LoaderFileName = FileName

' If an old Loader exists, delete it
If LoaderFileName <> Empty Then
    If fileexists(App.path & "\" & LoaderFileName) = True Then
    fDelete App.path & "\" & LoaderFileName, False, False
    End If
End If

FrmConnect.txt_status.Text = "Status: Writing loader.html..."

' Write the Loader (with a script to disable the backspace key in IE)
txt_WriteAll App.path & "\" & FileName, "<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>"
txt_AppendLine App.path & "\" & FileName, "<meta http-equive = content-type content = text/html; charset= iso-8859-1>"
txt_AppendLine App.path & "\" & FileName, "<html>"
txt_AppendLine App.path & "\" & FileName, "<title>SnG Script Console - Browser</title>"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "<head>"
txt_AppendLine App.path & "\" & FileName, "<script type='text/javascript'>"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "Function stopPropagation(e)"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "e = e¦¦event; /* get IE event ( not passed ) */"
txt_AppendLine App.path & "\" & FileName, "alert(e.keyCode);"
txt_AppendLine App.path & "\" & FileName, "e.stopPropagation? e.stopPropagation() : e.cancelBubble = true;"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "var x = false;"
txt_AppendLine App.path & "\" & FileName, "Function checkShortcut(e)"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "stopPropagation(e);"
txt_AppendLine App.path & "\" & FileName, "if(event.keyCode==8 ¦¦ event.keyCode==13)"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "alert('Backspace');"
txt_AppendLine App.path & "\" & FileName, "if( x )"
txt_AppendLine App.path & "\" & FileName, "return true;"
txt_AppendLine App.path & "\" & FileName, "return false;"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "Function attachHandlerStart()"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "var dlist = document.getElementsByTagName('html');"
txt_AppendLine App.path & "\" & FileName, "for( var i = 0; i < dlist.length; i++ )"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "attachHandler(dlist.item(i));"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "Function attachHandler(node)"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "// Iterate the dom, attaching the onkeypress event to all of the items"
txt_AppendLine App.path & "\" & FileName, "if( node.nodeType == 1 ) // Element"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "node.onkeydown = checkShortcut;"
txt_AppendLine App.path & "\" & FileName, "alert('Attached checkShortcut to '+node.nodeName);"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "// Iterate the children of this node"
txt_AppendLine App.path & "\" & FileName, "var children = node.childNodes;"
txt_AppendLine App.path & "\" & FileName, "for( var i = 0; i < children.length; i++ )"
txt_AppendLine App.path & "\" & FileName, "{"
txt_AppendLine App.path & "\" & FileName, "attachHandler(children.item(i));"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "}"
txt_AppendLine App.path & "\" & FileName, "</script>"
txt_AppendLine App.path & "\" & FileName, "</head>"
txt_AppendLine App.path & "\" & FileName, "<body bgcolor='#000000' onload='attachHandlerStart();'>"
txt_AppendLine App.path & "\" & FileName, HabboLoaderPart
txt_AppendLine App.path & "\" & FileName, "</body>"
txt_AppendLine App.path & "\" & FileName, ""
txt_AppendLine App.path & "\" & FileName, "</html>"

FrmConnect.txt_status.Text = "Status: Loading loader.html..."

PublicKeySet = False

' Load the Loader in the Browser
HabboBrowser.Navigate (App.path & "\" & FileName)

' Wait until the Browser URL has the "loader.html" in it - Loader loaded
Do
DoEvents
Loop Until Right(HabboBrowser.LocationURL, 11) = "loader.html"
Me.Show

' If an old Loader exists, delete it
If LoaderFileName <> Empty Then
    If fileexists(App.path & "\" & LoaderFileName) = True Then
    fDelete App.path & "\" & LoaderFileName, False, False
    End If
End If

Exit Function

LoginFailed:
            FrmConnect.txt_status.Text = "Status: Login failed..."
            FrmBrowser.Hide
            FrmConnect.cbo_hotel.Enabled = True
            FrmConnect.txt_username.Enabled = True
            FrmConnect.txt_password.Enabled = True
            FrmConnect.cmd_logout.Enabled = False
            FrmConnect.Show
            Exit Function

End Function

Private Sub Packets_Click()

' On Click on Packets, show the Packet Form
FrmPackets.Show

End Sub

Private Sub SckClient_ConnectionRequest(ByVal requestID As Long)

' If Habboserver requests a Connection with SckClient
SckServer.Connect
SckClient.Close
Do Until SckServer.State = sckConnected
DoEvents
Loop
SckClient.Close
SckClient.Accept requestID
 
End Sub

Private Sub SckClient_DataArrival(ByVal bytesTotal As Long)

' Get the ClientPacket, if SckClient is connected
If SckClient.State = sckConnected Then
    SckClient.GetData ClientPacket
Else
' Call the Logout Procedure
Call LogOut
End If

' Count the Length of the ClientPacket
Dim PacketCount As Long
PacketCount = Len(ClientPacket)

' If ServerPacket is empty, skip the Packetlogger and Packetsplitter
If ClientPacket = Empty Then
GoTo TheEnd:
End If

' Call the Packetsplitter Procedure
Call SplitData(ClientPacket, "SckClient")

' If Encryption is on
If FrmConnect.opt_enc_on.value = True Then
    ' Decrypt using Decryption Instance
    If PublicKeySet = True Then
    Dim Decrypted_ClientPacket As String
    PacketLogger = True
    ClientPacketsFunction = True
    Call RC4D.decipher(ClientPacket)
    Decrypted_ClientPacket = ClientPackets.Dequeue
    PacketLogger = False
    End If
    Call SplitData(Decrypted_ClientPacket, "SckClient")
ElseIf FrmConnect.opt_enc_on.value = False Then
    PacketLogger = True
    Call PacketLog(ClientPacket, False, False)
    PacketLogger = False
End If

TheEnd:
' If Encryption is on
If FrmConnect.opt_enc_on.value = True And SckServer.State = sckConnected Then
        ' Cause first packets will not be encrypted by the Client
        If PublicKeySet = False Then GoTo no:

        ' Let the packets run through Encrypt instance
        If SentData = False Then
        ClientPacketsFunction = False
        Call RC4E.decipher(ClientPacket)
        Decrypted_ClientPacket = ClientPackets.Dequeue
        End If

        ' Because client will be behind
        If SentData = True Then
            SckServer.SendData RC4E.encipher(Decrypted_ClientPacket)
            Call RC4E.extraPremixEncodeSbox
        Else
no:
        ' Act normal
        SentData = False
        SckServer.SendData ClientPacket
        End If
' If Encryption is off, send the Client Packet without Encryption to the Server
ElseIf FrmConnect.opt_enc_off.value = True And SckServer.State = sckConnected Then
    SckServer.SendData (ClientPacket)
End If

If ClientPackets.Count > 0 And SentData = True Then
Do
Decrypted_ClientPacket = ClientPackets.Dequeue
SckServer.SendData RC4E.encipher(Decrypted_ClientPacket)
Call RC4E.extraPremixEncodeSbox
Loop Until ClientPackets.Count = 0
End If

If ClientPackets.Count = 0 And SentData = True Then
ClientPackets.Class_Terminate
ClientPackets.Class_Initialize
End If

Debug.Print ClientPacket

End Sub

Private Sub SckServer_DataArrival(ByVal bytesTotal As Long)

' Get the ServerPacket, if SckServer is connected
If SckServer.State = sckConnected Then
SckServer.GetData ServerPacket
Else
' Call the Logout Procedure
Call LogOut
End If

' Count the Length of the ServerPacket
Dim PacketCount As Long
PacketCount = Len(ServerPacket)

' If ServerPacket is empty, skip the Packetlogger and Packetsplitter
If ServerPacket = Empty Then
GoTo TheEnd:
End If

'If StrCount(ServerPacket, Chr(1)) = 0 Then
'ServerPacketsJoin.Enqueue ServerPacket
'GoTo SkipPacket
'End If

'Dim i As Long
'For i = 0 To ServerPacketsJoin.Count - 1
'Dim tmpServerPacketJoin As String
'tmpServerPacketJoin = ServerPacketsJoin.Dequeue
'ServerPacket = ServerPacket & tmpServerPacketJoin
'Next i

'If StrCount(ServerPacket, Chr(1)) > 1 Then
'Dim J As Long
'For J = 0 To StrCount(ServerPacket, Chr(1)) - 1
'ServerPacketsSplit.Enqueue Split(ServerPacket, Chr(1))(J)
'Next J
'Else
'PacketLogger = True
'Call PacketLog(ServerPacket, True, False)
'PacketLogger = False
'End If

PacketLogger = True
Call PacketLog(ServerPacket, True, False)
PacketLogger = False

ServerPacketsSplit:

' Call the Packetsplitter Procedure
Call SplitData(ServerPacket, "SckServer")

'Dim K As Long
'For K = 0 To ServerPacketsSplit.Count - 1
'Dim tmpServerPacketSplit As String
'tmpServerPacketSplit = ServerPacketsSplit.Dequeue
'PacketLogger = True
'Call PacketLog(tmpServerPacketSplit, True, False)
'PacketLogger = False
'Next K

' Send the Packet with SckClient to the Client
TheEnd:
If SckClient.State = sckConnected Then
SckClient.SendData ServerPacket
Else
' Call the Logout Procedure
Call LogOut
End If

'If ServerPacketsSplit.Count = 0 Then
'ServerPacketsSplit.Class_Terminate
'ServerPacketsSplit.Class_Initialize
'End If

Debug.Print ServerPacket

SkipPacket:
End Sub

Private Sub SckClient_Close()

' If SckClient lose the connection, close the connection
SckClient.Close
SckClient.Listen
SckServer.Close
' Call the Logout Procedure
Call LogOut

End Sub

Private Sub SckServer_Close()

' If SckServer lose the connection, close the connection
SckClient.Close
SckClient.Listen
SckServer.Close
' Call the Logout Procedure
Call LogOut

End Sub

Private Sub Form_Unload(Cancel As Integer)

Call LogOut

End Sub
