永发信息网

关于VB winsock控件

答案:4  悬赏:70  手机版
解决时间 2021-07-18 10:14
  • 提问者网友:雨不眠的下
  • 2021-07-17 15:42

我想制作一个程序,功能是监听所有端口的连接情况,用树视图控件(报表形式)显示连接远程地址,被连接端口,连接时长(用Timer完成)

建模:将winsock设置为侦听(listen)模式,当有远程连接访问时会触发ConnectionRequest事件,在我看来,requestID参数会记录访问地址或IP;当远程计算机断开连接时,会触发close事件,从而删除树视图控件的对应项目(但我不知道如何删除对应的)

先请各位懂VB的教教我怎样编写

把代码发过来,最好有图啊

最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-07-17 16:30

首先“监听所有端口的连接情况”用winsock理论上是可行的,但是实际上是不具备可操作性的,


另外:accept requestID 之后,winsock 的属性里面可以取得远程连接的 IP地址,这些都是小事。


关键是你的 “监听所有端口的连接情况”基本不可行。


首先你需要说清楚你这个程序需要实现的功能和用途,因为从你的描述看,你对程序的整体构架还没有合理的思路,所以才会想出这样基本不可行的办法。

全部回答
  • 1楼网友:往事埋风中
  • 2021-07-17 20:00

不知道楼主是不是想写一个好像 netstat 那样的显示端口连接状态的程序呢,如果是,使用 vb 的 winsock 控件是不可以实现的,另外协议时有分 tcp 和 udp 的

如果是想枚举系统当前打开的所有端口,请参考

http://www.3800hk.com/news/w32/13975.html

"当一个connect操作完成后,会触发connect事件" 但是这只是在你自己的进程中

在别的进程中 connect 完成后,你的 winsock 控件是不可能会触发 connect 事件的...

  • 2楼网友:杯酒困英雄
  • 2021-07-17 18:48

完全是可以行通的。

一楼理解错他的意思了,他的意思是监控所有正在链接的端口。这完全是可行的。

他现在最主要的问题是不知道端口停止链接后,如何在列表框里面删除对应的端口等信息,

这可以设置几秒钟后自动从新读取一边正在链接端口信息,就可以达到删除的目的.

  • 3楼网友:佘樂
  • 2021-07-17 17:09
vb的winsock控件是有缺陷的,完全行不通,更不要说监听所有的端口了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯