如何写程序实现监视本机所有与网络的通信连接?
要求能够接收到所有发出和送进来的数据包,但不影响其他程序的正常通信
给个思路!

解决方案 »

  1.   

    首先用while(boolean)把Socket的对象包起来然后把IO做成多线程就OK了Example 
    ServerSocket ss = new ServerSocket(PORT);
    while (true){
    Socket sk = ss.accept;
    new ioThread(Socket).start();}然后把IO写入Thread中
    public class ioThread extends Thread{}
    public ioThread(Socket sk){ io 处理}
      

  2.   

    上面的方法注意千万别把ServerSocket,socket, io对象给Close()了,一旦Close()就不会继续监听了
      

  3.   

    如果是检测当前JVM,那还好说一点,如果是检测本机,那就不太好办了,估计得用jni加载系统hook,你需要懂Win32SDK如果你的程序不是很严格,只是自己写写玩,告诉你一个不安全的做法,调用netstat哈哈
      

  4.   

    网络检测这种软件用Java不太好做,和平台相关性很大,还是C/C++调用操作系统API上钩子比较方便。