RT..已知某进程建立一个TCP连接到某IP..
如何通过VB判断此进程此连接的状态..?
望高手指教12..........

解决方案 »

  1.   

    一种办法是做个中间代理层,让那个进程连接到你的中间代理层,然后再转发到真实的IP,这样就可以判断连接状态了。
    第二种办法是替换WINSOCK函数库。
      

  2.   

    http://download.csdn.net/source/302510
      

  3.   

    shell("tcpvcon.exe -nc >c:\tcpv.txt")
    '读c:\tcpv.txt的内容
    其中tcpvcon.exe是tcpview.exe的命令行版
      

  4.   

    tvpvcon.exe不是系统自带的? 是什么程序? 
    借助第三方程序实现起来很不理想..
    而且,这里读出来的文本列表,不能判断哪个进程是哪个pid..
      

  5.   

    换成
    netstat -a
    ?不过里面有一大堆数据,效率很低的,而且要找也未必找得到
    有没有人又其他方法?
      

  6.   

    c:\>tcpvcon /?TCPView v2.52 - TCP/UDP endpoint viewer
    Copyright (C) 1998-2007 Mark Russinovich
    Sysinternals - www.sysinternals.comUsage: tcpvcon [-a] [-c] [-n] [process name or PID]
      -a       Show all endpoints (default is to show established TCP
               connections).
      -c       Print output as CSV.
      -n       Don't resolve addressed.
      process  Only show endpoints owned by the process specified.
    c:\>tcpvcon -ncTCPView v2.52 - TCP/UDP endpoint viewer
    Copyright (C) 1998-2007 Mark Russinovich
    Sysinternals - www.sysinternals.comTCP,System,8,ESTABLISHED,192.168.2.115:139,192.168.1.125:1544
    TCP,iexplore.exe,840,ESTABLISHED,192.168.2.115:1941,211.100.26.111:80不用Sysinternals的工具是你个人的损失。就好比你不用筷子吃饭一样。
      

  7.   

    小弟的环境是: 需要每秒监控多个相同进程名,根据各自PID来判断哪一个掉线,哪一些正常.
    这个工具确实短小精悍.高手您介绍的方法也确实可以达到目的.但是缺乏点效率..要不断读文本.读磁盘.而且是每秒.
    tcpvcon所显示的内容也是代码(API)实现的,我的意思是,在VB里面能不能使用类似的代码判断?而不是直接用他的程序..期待灵感..期待高手..
      

  8.   

    netstat -b就可以返回当前系统进程的网络使用状态,然后你就可以判断了........用CMD控制比较烦就是了
      

  9.   

    “不断读文本.读磁盘.而且是每秒. ”
    如果你学过操作系统文件Cache原理,你就不会担心上面操作的效率了。
    不信你可以用Filemon工具查看一下每秒你的磁盘文件读写有多频繁。
    如果你实在放心不下的话,搞个内存虚拟磁盘vmdisk,在其上读写吧。