VS提示说代码过期了,该怎么写呢?

sosoben 2013-05-28 09:56:24
         Dim addr As IPAddress
If Dns.GetHostByName(Dns.GetHostName()).AddressList.Count > 1 Then '对应双IP的状况,加上此判断

addr = New IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList(0).Address)
If addr.ToString.StartsWith("192") Then
Else
addr = New IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList(1).Address)
End If
Else
addr = New IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList(0).Address)
End If


 Dim iplocalendpoint As IPEndPoint = New IPEndPoint(addr, 5656)
tcpl = New TcpListener(iplocalendpoint)
tcpl.Start()
While listernerRun
Dim s As Socket = tcpl.AcceptSocket
Dim remote As String = s.RemoteEndPoint.ToString
Dim stream(512) As Byte
Dim i As Integer = s.Receive(stream)
Dim msg As String = "<" + remote + ">" + Encoding.UTF8.GetString(stream)
Dim arg As AddMessageEventarge = New AddMessageEventarge()
arg.mess = msg
RaiseEvent OnAddMessage(Me, arg)
End While


以上在vs2010提示代码已过期

本来过期是还是可以用的, 但不知道为什么今天在另外一台电脑不可以用了,经排查是这段代码的原因

注释了就好了.因为这个机器的第一个网卡刚好是我需要监听的网卡,所以暂时没问题,但我想把程序设成比较通用啊,该怎么设才能准确定位到我想要的网卡监听呢?
...全文
405 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
OutFocus 2013-06-06
  • 打赏
  • 举报
回复
Dim IP = System.Net.Dns.GetHostByName(Dns.GetHostName()).AddressList.GetValue(0).ToString
sosoben 2013-06-03
  • 打赏
  • 举报
回复
引用 16 楼 51Crack 的回复:
[quote=引用 14 楼 sosoben 的回复:] 新方法是什么啊??
System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0).ToString[/quote] 那我的代码应该是没问题的吧? 这个新的方法对付双网卡也是可以的吧? 判断下AddressList里哪个是我需要的ip,这样行吧?
51Crack 2013-06-03
  • 打赏
  • 举报
回复
引用 14 楼 sosoben 的回复:
新方法是什么啊??
System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0).ToString
sosoben 2013-06-03
  • 打赏
  • 举报
回复
引用 13 楼 juyangjia 的回复:
try都try不住,那你另请教其他人吧
或者是我把他们放到finally里面去了,你移上去试试
sosoben 2013-06-03
  • 打赏
  • 举报
回复
引用 4 楼 51Crack 的回复:
取IP,我一直在用过期的方法,新方法取的不是在用的网卡,老方法才管用
新方法是什么啊??
please_call_me_J 2013-05-31
  • 打赏
  • 举报
回复
2595300900@qq.com 让我见识一下你的错误呢。 发了之后在这个帖子引用一下我的回复,这个QQ我不常登陆的
please_call_me_J 2013-05-31
  • 打赏
  • 举报
回复
try都try不住,那你另请教其他人吧
sosoben 2013-05-31
  • 打赏
  • 举报
回复
引用 11 楼 juyangjia 的回复:
2595300900@qq.com 让我见识一下你的错误呢。 发了之后在这个帖子引用一下我的回复,这个QQ我不常登陆的
错误就是窗口都load出来了 才弹出错误,要求发信给ms之类的,没有什么错误信息(详细内容都是些内存地址)(我明明加了try的), 程序有很多其他东西,所以我只截取了运行这个类的过程 Private Sub StartLIS() Try Lie.listernerRun = False Lie.Stopth() Catch ex As Exception 'MsgBox(ex.Message) Finally Lie = New PToP.CLASSListener() Dim alhandler As EventHandler = AddressOf Lie_OnAddMessage AddHandler Lie.OnAddMessage, AddressOf Lie_OnAddMessage Lie.StartListen() End Try End Sub
please_call_me_J 2013-05-30
  • 打赏
  • 举报
回复
在程序界面上允许选择网卡就解决你要或不要,否则就根据你的“条件”来判断哪个要,哪个不要
sosoben 2013-05-30
  • 打赏
  • 举报
回复
引用 7 楼 juyangjia 的回复:
你说的是“过时”,ms会推荐用新的方法来代替,但过时的方法一样可以使用,只是不建议用
我知道,但现在问题在于一台机器可以,另外一台就不行. 两台都是双网卡,XP系统, 区别只在于一台返回的ip第一个不是我想要的,另一台第一个ip就是我想要的 只要把第一段代码直接改为 addr = New IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList(0).Address) 就可以运行了. 但我想更通用,而不是单独针对没台机去改写程序啊
please_call_me_J 2013-05-30
  • 打赏
  • 举报
回复
你说的是“过时”,ms会推荐用新的方法来代替,但过时的方法一样可以使用,只是不建议用
sosoben 2013-05-30
  • 打赏
  • 举报
回复
引用 3 楼 xiaobingking 的回复:
过期 就换一种写法 遇到过 忘记怎么写了
看看怎么转为新方法好吗?? 双网卡啊
sosoben 2013-05-30
  • 打赏
  • 举报
回复
引用 4 楼 51Crack 的回复:
取IP,我一直在用过期的方法,新方法取的不是在用的网卡,老方法才管用
那我最上面那段代码有什么问题啊? 为什么在一台机器可以,另外一台就不行呢? 双网卡,我只想监听ip开头为192的网卡啊~~
sosoben 2013-05-30
  • 打赏
  • 举报
回复
引用 9 楼 juyangjia 的回复:
在程序界面上允许选择网卡就解决你要或不要,否则就根据你的“条件”来判断哪个要,哪个不要
这是回答我吗? 方法我知道啊,判断我也写了,但是在某机器上会报错退出啊,写了try都没用啊,根本没有错误提示,我也不能带着源码到处改到处调试啊
红衣老大 2013-05-29
  • 打赏
  • 举报
回复
过期 就换一种写法 遇到过 忘记怎么写了
sosoben 2013-05-29
  • 打赏
  • 举报
回复
就是一个典型的网络监听啊 .怎么没有人注意到??
51Crack 2013-05-29
  • 打赏
  • 举报
回复
取IP,我一直在用过期的方法,新方法取的不是在用的网卡,老方法才管用
sosoben 2013-05-28
  • 打赏
  • 举报
回复
不好意思,是上面那段的是过期,下面应该没问题,我把if的第一个条件去掉 直接 addr = New IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList(0).Address) 就可以继续运行了

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧