【发布时间】:2011-05-12 21:30:53
【问题描述】:
编辑我偶然发现了这个问题...在函数开头添加以下行由于某种原因解决了问题...
remoteIPAdress = remoteIPAdress & "END"
你好。 我有一个学校作业,我应该在 Visual Basic 中构建一个简单的 TCP/IP 信使...... 问题是,当客户端在我构建的请求中发送他的IP(“LetMeIn\XXX.XXX.XXX.XXX”)时,即使服务器按应有的方式接收到请求,它也会完全错误地解析它......
更准确地说,当我运行这个 sn-p 时,我得到了这些结果:
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
输出:
哈哈!你尝试解析的IP地址是192.168.1.65
System.dll 中出现了“System.FormatException”类型的第一次机会异常
如果我更改以下行
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
很奇怪吧?
【问题讨论】:
-
您的代码没有显示的一件事是 IPAddress.Parse...?
-
提示:在您说 IPAddress.Parse 中存在错误之前,最好实际调用该方法。如果您因为遇到异常而无法解析地址,也许您应该首先关注该问题。
-
我编辑了我的帖子以显示整个函数...我在第 4 行调用该方法并收到格式异常...
标签: .net vb.net visual-studio-2008