РЕДАКТИРОВАТЬ Я случайно нашел обход этой проблемы ... Добавление следующей строки в начале функции по какой-то причине решило проблему ...
remoteIPAdress = remoteIPAdress & "END"
Здравствуйте.У меня есть школьное задание, где я должен создать простой мессенджер TCP / IP в Visual Basic ... Проблема заключается в том, что когда клиент отправляет свой IP в построенном мной запросе ("LetMeIn \ XXX.XXX.XXX.XXX "), даже если сервер получает запрос, как и должен, он анализирует его совершенно неправильно ...
Точнее, когда я запускаю этот фрагмент, я получаю следующие результаты:
Private Function findFreeIPEndPoint(ByVal remoteIPAdress As String) As IPEndPoint
Dim ipEndPoint As IPEndPoint
System.Diagnostics.Debug.Write("LOL! The IP adress you try to parse is " & remoteIPAdress)
System.Diagnostics.Debug.WriteLine("The parsed result is " & String.Concat(IPAddress.Parse(remoteIPAdress)))
ipEndPoint = New IPEndPoint(IPAddress.Parse(remoteIPAdress), 1003 + topUniqueId)
MessageBox.Show(String.Concat(ipEndPoint.Address))
System.Diagnostics.Debug.Write("The IP adress you got is " & String.Concat(ipEndPoint.Address))
Try
listener(ipEndPoint.Port - 1003).Start()
Catch ex As Exception
End Try
topUniqueId = topUniqueId + 1
Return ipEndPoint
End Function
Вывод:
LOL!IP-адрес, который вы пытаетесь проанализировать: 192.168.1.65
Первое исключение типа «System.FormatException» произошло в System.dll
Если я изменил следующую строку
ipEndPoint = New IPEndPoint(IPAddress.Parse(remoteIPAdress), 1003 + topUniqueId)
до
ipEndPoint = New IPEndPoint("192.168.1.65", 1003 + topUniqueId)
Я получаю это:
The IP adress you got is 229.64.116.11
Странно, верно?