我想制作一个程序,功能是监听所有端口的连接情况,用树视图控件(报表形式)显示连接远程地址,被连接端口,连接时长(用Timer完成)
建模:将winsock设置为侦听(listen)模式,当有远程连接访问时会触发ConnectionRequest事件,在我看来,requestID参数会记录访问地址或IP;当远程计算机断开连接时,会触发close事件,从而删除树视图控件的对应项目(但我不知道如何删除对应的)
先请各位懂VB的教教我怎样编写
把代码发过来,最好有图啊
我想制作一个程序,功能是监听所有端口的连接情况,用树视图控件(报表形式)显示连接远程地址,被连接端口,连接时长(用Timer完成)
建模:将winsock设置为侦听(listen)模式,当有远程连接访问时会触发ConnectionRequest事件,在我看来,requestID参数会记录访问地址或IP;当远程计算机断开连接时,会触发close事件,从而删除树视图控件的对应项目(但我不知道如何删除对应的)
先请各位懂VB的教教我怎样编写
把代码发过来,最好有图啊
首先“监听所有端口的连接情况”用winsock理论上是可行的,但是实际上是不具备可操作性的,
另外:accept requestID 之后,winsock 的属性里面可以取得远程连接的 IP地址,这些都是小事。
关键是你的 “监听所有端口的连接情况”基本不可行。
首先你需要说清楚你这个程序需要实现的功能和用途,因为从你的描述看,你对程序的整体构架还没有合理的思路,所以才会想出这样基本不可行的办法。
不知道楼主是不是想写一个好像 netstat 那样的显示端口连接状态的程序呢,如果是,使用 vb 的 winsock 控件是不可以实现的,另外协议时有分 tcp 和 udp 的
如果是想枚举系统当前打开的所有端口,请参考
http://www.3800hk.com/news/w32/13975.html
"当一个connect操作完成后,会触发connect事件" 但是这只是在你自己的进程中
在别的进程中 connect 完成后,你的 winsock 控件是不可能会触发 connect 事件的...
完全是可以行通的。
一楼理解错他的意思了,他的意思是监控所有正在链接的端口。这完全是可行的。
他现在最主要的问题是不知道端口停止链接后,如何在列表框里面删除对应的端口等信息,
这可以设置几秒钟后自动从新读取一边正在链接端口信息,就可以达到删除的目的.