可以告诉我吗?谢谢!
[email protected]
[email protected]
解决方案 »
- tlistview的tlistitem有data属性可以存放类吗?
- 关于KOL的问题,希望高手帮忙
- 如何删除重复数据?在线等!
- DELPHI 多线程问题:如何实现两线程之间的通讯!
- Delphi中怎么读出Image中图片的二进制源码
- 请问关于窗口操作的函数(例如使窗口关闭功能取消)。帮忙进来看看。
- 连接acess表的ADOTABLE在打开field editor 提示 from子句错误?
- for i:=1 to ExcelWorksheet1.UsedRange.Columns.Count do报错,什么原因?请各位高手帮忙,再线等待…………
- 请问QuickRep3.5版本哪里有下载的?
- delphi中如何获取未来的日期与时间?
- 怎样取得Treeview节点的各个子节点的值
- 各位!帮一下忙好吗?
[email protected]
2、使用SPI(服务提供者接口)开发一个分层服务提供者。可以得到每一个Socket调用的包信息。同样的道理,分析IP信息和包大小既可以实现网络计费。这种方法没有操作系统的局限,可以在Win9x,WinNT和Win2000下实现。下面详细讨论:(1) 关于VXD方面:有一个开发好的叫VPacket东西,可以实现在Win9x下的网络计费。源码我有。如果自己写的话,比较复杂。VPacket的原理是绑定在网卡上,网卡在收到包的时候会复制一个一样的包给这个Vxd。由于是复制分发,所以它无法做到过滤包,只能得到包。换句话说,就是不能用来做防火墙,做个计费到是戳戳有余了。还有一种就是最理想的,用中间层驱动程序。Win9x下提供了Hook NDIS服务的函数可以直接用,有关资料见Win98DDK。
(2) 关于Sys方面:在2000下面,目前我知道的也有一个类似Vpacket的东西。也可以用中间层驱动程序。有关资料当然是Win2000DDK了.(3) 第三种是最简单的,但是有一个问题,即它的只能做到Winsock API这一层,就是只有当应用程序调用Winsock API时,你才能得到传送的包。如果一个包只是经过你的网卡,不与任何应用发生关系,那么你就得不到这个包了。具体的方法在<Windows网络编程技术〉这本书中有说明,但是它是一个Dll,而且要用C或者C++做,然后共享内存与Delphi应用程序通讯。 以上是我所知道的关于网络计费方面的内容,关于这些的资料我虽然都有,但都很零散,没有办法汇总。如果那位朋友想要的话,请告诉我需要哪一方面以及有什么要求。
还有别的朋友知道其它的方法也请贴出来,谢谢!