Я делаю простой IRC-клиент для себя, потому что я действительно не вижу необходимости в большом количестве функций mIRC, но у меня возникают проблемы при очистке ввода с сервера.
Прямо сейчас, при подключении, я получаю следующее:
[16:37]: young.home.net AUTH УВЕДОМЛЕНИЯ: ** Поиск вашего имени хоста ...
: young.home.net AUTH УВЕДОМЛЕНИЯ: ** Найден ваш хост
PING: DE7AED31
[16:37]: DE7AED31! Nospoof@young.home.net PRIVMSG Логан: ВЕРСИЯ
: young.home.net 451 PING: Вы не зарегистрированы
[16:37]: young.home.net 001 Логан: Добро пожаловать в IRC-сеть YoungNet Logan!lyoung@127.0.0.1
: young.home.net 002 Логан: Ваш хост - young.home.net, работает версия Unreal3.2.8.1
: young.home.net 003 Логан: Этот сервер был создан Вс 12 апреля 14:47:33 2009
Я пытаюсь почистить это так:
[16:37] -young.home.net- ** Поиск вашего имени хоста ...
[16:37] -young.home.net- ** Найден ваш хост
[16:37] [Logan] VERSION
[16:37] Вы не зарегистрированы
Добро пожаловать в IRC сеть YoungNet Logan!lyoung@127.0.0.1
Ваш хост - young.home.net, работает версия Unreal3.2.8.1
Этот сервер был создан вс 12 апр 14:47:33 2009
Я прочитал IRCP (RFC 1459), и я понимаю форматирование ввода с сервера, но я не могу удалить ненужные вещи ... Друг предложил загрузить вход в массив и разобраться с каждый пункт в отдельности, но я не могу заставить его работать. Я пытался, но это, кажется, не имеет значения ... Вот мой код
Public Function recv() As String
Dim mail As String
Try
Dim Data(4096) As Byte
sock.Receive(Data, 4096, Net.Sockets.SocketFlags.None)
mail = System.Text.ASCIIEncoding.UTF8.GetString(Data)
If mail.Contains(" ") Then
If mail.Contains("PING") Then
Dim pserv As String = mail.Substring(mail.IndexOf(":"), mail.Length - mail.IndexOf(":"))
pserv = pserv.TrimEnd(Chr(0))
'MsgBox("pserv: " & pserv)
send("PONG " & pserv)
ElseIf mail.Substring(mail.IndexOf(" ") + 1, 7) = "PRIVMSG" Then
Dim tmparr() As String = Nothing
Dim rnick, rmsg As String
mail = mail.Remove(0, 1)
tmparr = mail.Split("!")
rnick = tmparr(0)
tmparr = mail.Split(":")
rmsg = tmparr(1)
mail = "<" & rnick & "> " & rmsg
ElseIf mail.Substring(mail.IndexOf(" ") + 1, 6) = "NOTICE" Then
Dim tmparr() As String = Nothing
Dim rnick, rmsg As String
mail = mail.Remove(0, 1)
tmparr = mail.Split("!")
rnick = tmparr(0)
tmparr = mail.Split(":")
rmsg = tmparr(1)
mail = "-" & rnick & "- " & rmsg
Else
Dim tmparr() As String = Nothing
Dim rnick, rmsg As String
tmparr = mail.Split(" ")
rnick = tmparr(0)
tmparr = mail.Split(":")
rmsg = tmparr(1)
mail = rmsg
End If
End If
mail = g.Timestamp & mail
Catch ex As Exception
MsgBox(ex.ToString)
mail = "ERROR: " & ex.Message & vbCrLf
End Try
Return mail
End Function
Любые указатели здесь будут с благодарностью.