在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态

※==================================================================
※本连载文章说明:
※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);
※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;
※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;
※4、谢绝任何收费媒体、网络转载;
※5、原作者:uruseibest ,blog:http://blog.csdn.net/uruseibest
※6、如有其它疑问,请联系作者;
※7、如有转载,必须连同本说明一并发表,否则将追究转载者责任。
※======================================================================

第十七节 设置TCP连接状态

1、函数:

①Private Declare Function SetTcpEntry Lib "iphlpapi.dll" (pTcpTable As MIB_TCPROW) As Long

参数说明:

PTcpRow:[输入]指向MIB_TCPROW类型,这个类型指定了TCP连接的标识,也指定了TCP连接的新状态。调用者必须指定此类型中所有成员的值。

备注:通常设置为MIB_TCP_STATE_DELETE_TCB(值为12)用来断开某个TCP连接,这也是唯一可在运行时设置的状态。

返回值:成功,返回0;失败,返回错误代码。

 

②Private Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable As MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long

参看 本章第四节 1

 

2、使用到的类型:

①MIB_TCPTABLE 类型包含Tcp连接表。参看本章第四节 2 ①

 

②MIB_TCPROW 类型包含了TCP连接信息。参看本章第四节 2 ②

 

3、使用到的常量:

Const MIB_TCP_STATE_DELETE_TCB = 12           ‘设置断开此Tcp连接

 

4、主要代码分析:

①定义一个MIB_TCPTABLE类型的变量后直接调用GetTcpTable(参看本章第四节 4 ①)

②使用For…Next循环遍历各个Tcp连接的信息,此时的mtcp.TCP_Table(i) 将作为设置TCP连接状态的参数依据(参看本章第四节 4  ②)

For i = 0 To mtcp.dwNum_Of_Entries - 1

Print  mtcp.TCP_Table(i).dwLocalAddr & "->" & mtcp.TCP_Table(i).dwRemoteAddr

Next

③手动输入要删除的TCP连接的序号,设置MIB_TCPROW类型的每一个成员的值

TcpIndex = InputBox("接口号", "Del..")

If TcpIndex = "" Then Exit Sub Else TcpIndex = CLng(TcpIndex)

Ttable.dwLocalAddr = mtcp.TCP_Table(TcpIndex).dwLocalAddr

Ttable.dwLocalPort = mtcp.TCP_Table(TcpIndex).dwLocalPort

Ttable.dwRemoteAddr = mtcp.TCP_Table(TcpIndex).dwRemoteAddr

Ttable.dwRemotePort = mtcp.TCP_Table(TcpIndex).dwRemotePort

Ttable.dwState = MIB_TCP_STATE_DELETE_TCB

④调用函数SetTcpEntry断开对应序号的TCP连接,需要注意的是,断开系统的连接,即使调用函数显示成功,但实际并不能断开系统连接。

r = SetTcpEntry(Ttable)

 

5、运行时截图:

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/UruseiBest/archive/2006/12/20/1450393.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值