VERSION 5.00
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Begin VB.Form frmSocket
ClientHeight = 435
ClientLeft = 60
ClientTop = 345
ClientWidth = 2355
LinkTopic = "Form1"
ScaleHeight = 435
ScaleWidth = 2355
StartUpPosition = 3 'Windows Default
Begin VB.Timer tmrParse
Interval = 1
Left = 1920
Top = 0
End
Begin VB.Timer tmrSend
Interval = 1
Left = 1440
Top = 0
End
Begin MSWinsockLib.Winsock Winsock3
Left = 990
Top = 0
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
Begin MSWinsockLib.Winsock socketDCC
Left = 480
Top = 0
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
Begin MSWinsockLib.Winsock Socket
Left = -15
Top = 0
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
End
Attribute VB_Name = "frmSocket"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Socket_Connect()
frmStatus.rtfStatus.SelText = "Connected to server!" & vbCrLf
Socket.SendData "User " & Email & " " & Socket.LocalHostName & " " & Socket.RemoteHost & " :" & RealName & vbCrLf
Socket.SendData "NICK " & MyNick & vbCrLf
frmStatus.Caption = "Status: " & NickName
End Sub
Private Sub Socket_ConnectionRequest(ByVal requestID As Long)
'Accept request ID
Socket.Close
Socket.Accept requestID
End Sub
Private Sub Socket_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Socket.GetData strData, vbString
'Check for data and add to queue
CheckForLine strData
End Sub
Private Sub tmrParse_Timer()
'The timer will check for queue message every 1 millisecond. This is secondary parse
'process in this program. It will parse out host, trigger, message
Dim intCount As Integer
Dim blnParsed As Boolean
Dim strData As String
Dim strFirst As String, strSecond As String, strThird As String, strFourth As String
Dim intPos1 As Integer, intPos2 As Integer, intPos3 As Integer, intPos4 As Integer
intCount = 1
Do While blnParsed = False And intCount <= QueueMsg.Count
strData = QueueMsg.Item(intCount)
'remove first line feed if there are any
If Mid(strData, 1, 1) = Chr(13) Or Mid(strData, 1, 1) = Chr(10) Then
strData = Mid(strData, 2)
End If
intPos1 = InStr(1, strData, " ")
If intPos1 Then
strFirst = Trim(Left(strData, intPos1))
intPos2 = InStr(intPos1 + 1, strData, " ")
If intPos2 Then
strSecond = Trim(Mid(strData, intPos1 + 1, (intPos2 - intPos1)))
intPos3 = InStr(intPos2 + 1, strData, " ")
If intPos3 Then
strThird = Trim(Mid(strData, intPos2 + 1, (intPos3 - intPos2)))
strFourth = Trim(Right(strData, Len(strData) - intPos3))
Else 'no third space
strThird = Trim(Mid(strData, intPos2 + 1, Len(strData) - intPos2))
End If
Else 'no second space, mostlikely PING or ERROR
strFirst = Trim(Right(strData, Len(strData) - InStr(strData, ":")))
strSecond = "PING"
strThird = ""
strFourth = ""
End If
End If
'Error case
If UCase(strFirst) = "ERROR" Then
strFirst = ""
strSecond = "ERROR"
End If
ParseMsg strFirst, strSecond, strThird, strFourth
blnParsed = True
QueueMsg.Remove intCount
intCount = intCount + 1
Loop
End Sub