关于vb.net释放端口的信息

跪求大神指点vb.net 怎么释放变量在内存中的残留地址值呀.net 有自己的资源回收机制GC 。
如果变量不再使用了,所有引用该变量的其它变量也都没用了(dispose或者赋值为空了),那么这些没用的变量会定时的被GC自动回收,不需要自己去管理 。
如果非要自己释放资源的话,可以使用 GC.Collect() 进行释放,但是并不能保证一次GC.Collect()就可以释放掉所有没有用的资源,可能要经过好几轮GC.Collect()才能释放干净 。
所以还是建议不要手动回收了 , 让系统根据要求自动回收吧 。
vb.net 指定IP端口是否开放using System.Net;
if(!string.IsNullOrEmpty(txtPort.Text))
{
IPAddress ip = IPAddress.Parse(txtIp.Text);
IPEndPoint point=new IPEndPoint(ip,int.Parse(txtPort.Text));
try
{
TcpClient tcp=new TcpClient();
tcp.Connect(point);
MessageBox.Show("端口打开");
}catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
通过以上这个方法,只能判断你是否能链接这个端口 。
通过以下这个方法,能判断端口是否开放
public static void GetTcpConnections()
{
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
string str="";
foreach (TcpConnectionInformation t in connections)
{
str+="Local endpoint:"+ t.LocalEndPoint.ToString()+",";
str+="Remote endpoint:"+ t.RemoteEndPoint.ToString()+",";
str+=t.State.ToString()+",";
}
MessageBox.Show(str);
【关于vb.net释放端口的信息】}
vb.net 关闭窗口 内存不能释放1.如果你释放的是托管托管代码的内存,那么托管代码的内存管理是自动的,.NET可以保证我们的托管程序在结束时全部释放 。
2.如果是非托管资源时.NET就不能自动管理了,下面是释放非托管资源内存方法
当我们利用如数据库、文件等非托管资源时 , 就要用到.NET Framework中的标准: IDisposable接口 。按照标准,所有有需要手动释放非托管资源的类都得实现此接口 。这个接口只有一个方法,Dispose() , 不过有相对的 Guidelines指示如何实现此接口,在这里我向大家说一说 。实现IDisposable这个接口的类需要有这样的结构:
[Visual Basic]
Public Class Base
Implements IDisposable
Public Overloads Sub Dispose() Implements IDisposable.Dispose
Me.Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overloads Overridable Sub Dispose(ByVal disposing As Boolean)
If disposing Then
' 托管类
End If
' 非托管资源释放
End Sub
Protected Overrides Sub Finalize()
Me.Dispose(False)
MyBase.Finalize()
End Sub
End Class
Public Class Derive
Inherits Base
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
' 托管类
End If
' 非托管资源释放
MyBase.Dispose(disposing)
End Sub
End Class
我们要实现Dispose方法,实现这个Dispose方法的几个准则:
它不能扔出任何错误 , 重复的调用也不能扔出错误 。也就是说,如果我已经调用了一个对象的Dispose , 当我第二次调用Dispose的时候程序不应该出错 , 简单地说程序在第二次调用Dispose时不会做任何事 。这些可以通过一个flag或多重if判断实现 。
一个对象的Dispose要做到释放这个对象的所有资源 。拿一个继承类为例 , 继承类中用到了非托管资源所以它实现了IDisposable接口,如果继承类的基类也用到了非托管资源那么基类也得被释放,基类的资源如何在继承类中释放呢?当然是通过一个virtual/Overridable方法了,这样我们能保证每个Dispose都被调用到 。这就是为什么我们的设计有一个virtual/Overridable的Dispose方法 。注意我们首先要释放继承类的资源然后再释放基类的资源 。

推荐阅读