WINDOWS下利用QOS实现流量控制 |
您所在的位置:网站首页 › 限流量的软件 › WINDOWS下利用QOS实现流量控制 |
/****************************************************************** * 函数介绍:限制一个Connection的网络流量 * 输入参数:nProtocol:要限制流量的协议类型 pzSrcIp:源IP nSrcPort:源端口 pzDstIp:目标IP nDstPort:目标端口 nTraffic:限制流量 * 输出参数: * 返回值 :成功返回0;失败返回错误码 *******************************************************************/ 注意:设置网段流量限制的函数和这个函数大体相同 int CTrafficControl::AddTrafficControl( int nProtocol, const char *pzSrcIp, const int nSrcPort, const char *pzDstIp, const int nDstPort, int nTraffic ) { HANDLE ClientHandle; HANDLE ifcHandle; HANDLE flowHandle; HANDLE FilterHandle;
// QOS函数列表,处理各种事件通知回调函数 TCI_CLIENT_FUNC_LIST QoSFunctions; QoSFunctions.ClAddFlowCompleteHandler = NULL; QoSFunctions.ClDeleteFlowCompleteHandler = NULL; QoSFunctions.ClModifyFlowCompleteHandler = NULL; QoSFunctions.ClNotifyHandler = (TCI_NOTIFY_HANDLER)MyClNotifyHandler;
// 注册Client,获取Client句柄 long result = TcRegisterClient(CURRENT_TCI_VERSION, NULL, &QoSFunctions , &ClientHandle); if( NO_ERROR != result ) { //cout //cout TcObjectsLength = sizeof(QOS_DS_CLASS) + sizeof(QOS_TRAFFIC_CLASS) + sizeof(QOS_OBJECT_HDR);
LPQOS_DS_CLASS pQOSClass = (LPQOS_DS_CLASS)(&(newFlow-> TcObjects[0]) ); pQOSClass-> ObjectHdr.ObjectType = QOS_OBJECT_DS_CLASS; pQOSClass-> ObjectHdr.ObjectLength = sizeof(QOS_DS_CLASS); pQOSClass-> DSField = 0x24; LPQOS_TRAFFIC_CLASS pTRClass = (LPQOS_TRAFFIC_CLASS)((char*)&(newFlow-> TcObjects[0])+ sizeof(QOS_DS_CLASS)); pTRClass-> ObjectHdr.ObjectType = QOS_OBJECT_TRAFFIC_CLASS; pTRClass-> ObjectHdr.ObjectLength = sizeof(QOS_TRAFFIC_CLASS); pTRClass-> TrafficClass = 0x3; objHdr = (LPQOS_OBJECT_HDR)((char *)&(newFlow-> TcObjects[0]) + sizeof(QOS_DS_CLASS) + sizeof (QOS_TRAFFIC_CLASS)); objHdr-> ObjectType = QOS_OBJECT_END_OF_LIST; objHdr-> ObjectLength = sizeof(QOS_OBJECT_HDR); // 添加Flow到打开的接口中。 // 注意,FlowSpec设置错误会导致这里添加失败。相关规则请参见MSDN中FLOWSPEC的解释 result = TcAddFlow( ifcHandle, /*ClientHandle*/NULL, 0, newFlow, &flowHandle ); if( NO_ERROR != result ) { //cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |