1.一种监控应用程序使用流量的方法,其特征在于,所述方法包括:
在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;
在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;
根据传输层sock数据结构中的UID,确定传输数据对应的应用程序;
其中,在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID,包括:
在传输数据时,查找所述数据对应的sock数据结构;
在查找到对应的sock数据结构时,记录传输数据的socket链接信息及对应的UID,将所述socket链接信息作为第一链接信息,并记录第一链接信息和UID的对应关系;
如果没有对应的sock数据结构,则记录传输数据的socket链接信息,作为第二链接信息,根据所述第二链接信息,在所述对应关系中查找对应的UID。
2.根据权利要求1所述的方法,其特征在于,在传输数据时,查找所述数据对应的sock数据结构,包括:
在接收到数据时,在记录网络链接状态的第一哈希表中查找所述数据所属的socket链接的状态;
如果查找到所述数据所属的socket链接的状态,则查找对应的sock数据结构;如果没有查找到所述数据所属的socket链接的状态,则确定没有对应的sock数据结构。
3.根据权利要求1所述的方法,其特征在于,记录传输数据的socket链接信息及对应的UID,将所述socket链接信息作为第一链接信息,并记录第一链接信息和UID的对应关系,包括:
根据所述数据,获取传输数据的socket链接信息,作为第一链接信息;
以第一链接信息为索引,通过第二哈希表记录对应的UID,作为第一链接信息和UID的对应关系;
记录传输数据的socket链接信息,作为第二链接信息包括:
根据所述数据,获取传输数据的socket链接信息,作为第二链接信息;
通过第三哈希表记录所述第二链接信息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述链接信息包括服务器的IP地址、端口和协议。
5.根据权利要求1-3任一所述的方法,其特征在于,还包括:
根据所述UID,统计对应的应用程序在第一预设时间内消耗的流量;
如果应用程序在第一预设时间内消耗的流量大于预设阈值,则关闭终端的数据流量,并在关闭第二预设时间后再次打开所述数据流量。
6.一种监控应用程序使用流量的装置,其特征在于,所述装置包括:
UID添加模块,用于在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;
UID获取模块,用于在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;
应用程序确定模块,用于根据传输层sock数据结构中的UID,确定传输数据对应的应用程序;
其中,所述UID获取模块包括:
sock结构查找单元,用于在传输数据时,查找所述数据对应的sock数据结构;
对应关系记录单元,用于在查找到对应的sock数据结构时,记录传输数据的socket链接信息及对应的UID,将所述socket链接信息作为第一链接信息,并记录第一链接信息和UID的对应关系;
UID查找单元,用于如果没有对应的sock数据结构,则记录传输数据的socket链接信息,作为第二链接信息,根据所述第二链接信息,在所述对应关系中查找对应的UID。
7.根据权利要求6所述的装置,其特征在于,所述sock结构查找单元包括:
链接状态查找子单元,用于在接收到数据时,在记录网络链接状态的第一哈希表中查找所述数据所属的socket链接的状态;
sock结构确定子单元,用于如果查找到所述数据所属的socket链接的状态,则查找对应的sock数据结构;如果没有查找到所述数据所属的socket链接的状态,则确定没有对应的sock数据结构。
8.根据权利要求6所述的装置,其特征在于,所述对应关系记录单元包括:
第一链接信息获取子单元,用于根据所述数据,获取传输数据的socket链接信息,作为第一链接信息;
对应关系记录子单元,用于以第一链接信息为索引,通过第二哈希表记录对应的UID,作为第一链接信息和UID的对应关系;
所述UID查找单元包括:
第二链接信息获取子单元,用于根据所述数据,获取传输数据的socket链接信息,作为第二链接信息;
链接信息记录子单元,用于通过第三哈希表记录所述第二链接信息。
9.根据权利要求6-8任一所述的装置,其特征在于,所述链接信息包括服务器的IP地址、端口和协议。
10.根据权利要求6-8任一所述的装置,其特征在于,还包括:
流量消耗统计模块,用于根据所述UID,统计对应的应用程序在第一预设时间内消耗的流量;
数据功能处理模块,用于如果应用程序在第一预设时间内消耗的流量大于预设阈值,则关闭终端的数据流量,并在关闭第二预设时间后再次打开所述数据流量。
11.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
在网络传输建立时,创建传输层sock数据结构和socket链接,并将网络传输所对应的应用程序的UID添加到传输层sock数据结构的UID字段中;
在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID;
根据传输层sock数据结构中的UID,确定传输数据对应的应用程序;
其中,在传输数据时,查找所述数据对应的传输层sock数据结构并获取对应的UID,包括:
在传输数据时,查找所述数据对应的sock数据结构;
在查找到对应的sock数据结构时,记录传输数据的socket链接信息及对应的UID,将所述socket链接信息作为第一链接信息,并记录第一链接信息和UID的对应关系;
如果没有对应的sock数据结构,则记录传输数据的socket链接信息,作为第二链接信息,根据所述第二链接信息,在所述对应关系中查找对应的UID。