我用java的udp协议模拟本机发出大量数据,但是不行。我用du meter看 上传的流量最大2M,一般就是512k-1.5M,谁能帮我看看这个为什么?代码如下:
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
import java.net.*;
import java.io.*;
import java.util.*;public class SynJava {  public static void main(String arguments[]) {
    GreateChar gch = new GreateChar();
    ThreadAdd threadAdd = new ThreadAdd(gch);
    threadAdd.start();
  }
}class GreateChar {
  byte ch[] = new byte[10240*3];
  int threadCount = 0;  GreateChar() {
    for (int i = 0; i < ch.length; i++) {
      ch[i] = (byte) (Math.random() * 100);
    }
  }  public synchronized void addCount() {
    threadCount++;
    System.out.println("add = " + threadCount);
  }  public synchronized void decCount() {
    threadCount--;
    System.out.println("dec = " + threadCount);
  }  public int getThreadCount() {
    return threadCount;
  }}class UrlWeb
    extends Thread {
  GreateChar gch;
  int threadId;  UrlWeb(GreateChar gch, int threadId) {
    this.gch = gch;
    this.threadId = threadId;
  }  public void run() {    try {      boolean loop = true;
      DatagramSocket sock = new DatagramSocket();
      InetAddress address = InetAddress.getByName("192.168.1.1");
      DatagramPacket packet = new DatagramPacket(gch.ch, gch.ch.length,
                                                 address, 80);
      while (loop == true) {
        sock.send(packet);
      }
      System.out.println("ok ThreadID = " + threadId);    }
    catch (Exception e) {
      System.out.println(gch.getThreadCount());
      gch.decCount();    }
  }
}class ThreadAdd
    extends Thread {
  GreateChar gch;  ThreadAdd(GreateChar gch) {
    this.gch = gch;
  }  public void run() {
    while (true) {
      System.out.println("threadCount = " + gch.getThreadCount() +
                         new Date().toString());
      int threadCount = gch.getThreadCount();
      if (threadCount < 500) {
        UrlWeb urlWeb[] = new UrlWeb[500 - threadCount];
        for (int i = 0; i < 500 - threadCount; i++) {
          System.out.println("add thread!");
          gch.addCount();
          urlWeb[i] = new UrlWeb(gch, i);
          urlWeb[i].start();
        }
      }
      try {
        sleep( (int) Math.random() * 100);
      }
      catch (InterruptedException e) {}
    }
  }
}