Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中反映端口53上的UDP数据包?_Java_Sockets_Udp - Fatal编程技术网

如何在java中反映端口53上的UDP数据包?

如何在java中反映端口53上的UDP数据包?,java,sockets,udp,Java,Sockets,Udp,我用Java编写了这个程序,我在Ubuntu 14下运行它 运行它时,它通过端口53将UDP数据包发送到在Debian 8.0下运行的缓存DNS服务器 服务器向源发送回复。如何修改程序,使服务器回复同一LAN中的另一个IP地址 节目如下: import java.io.*; import java.net.*; public class ClientSender { private static Object InetAdress; public static void main(St

我用Java编写了这个程序,我在Ubuntu 14下运行它

运行它时,它通过端口53将UDP数据包发送到在Debian 8.0下运行的缓存DNS服务器

服务器向源发送回复。如何修改程序,使服务器回复同一LAN中的另一个IP地址

节目如下:

import java.io.*;

import java.net.*;


public class ClientSender {
private static Object InetAdress;


public static void main(String[] args) {

int i ;

for (i=0;i<1000;i++){

DatagramSocket skt;

try{
           /////////////////////////////////////////
    skt = new DatagramSocket();     /////creating socket
    String msg = "Test";//////////message

    byte[] b =msg.getBytes(); /// creating message

            InetAddress host =InetAddress.getByName("192.168.1.3"); ///destination IP address

            int serverSocket = 53; // Destination Port

               ///////////////////////////////////////////////////////////////

            DatagramPacket request =new DatagramPacket(b,b.length,host,serverSocket);
            skt.send(request);                                                        /////////////////////////creating packet

            ///////////////////////////////////////////////////////////////////////////////

            //..................................// for receiving replies from destnation
            byte [] buffer = new byte[1000];
            DatagramPacket reply = new DatagramPacket (buffer, buffer.length);
            skt.receive(reply);                ///////////////////////////////////lestining to replies from destination

            skt.close();///////////////closing socket

            System.out.println(new String(request.getData()));
            System.out.println(new String(reply.getData()));



}
    catch (Exception ex)
    {

        }
}}

}
import java.io.*;
导入java.net。*;
公共类ClientSender{
私有静态对象地址;
公共静态void main(字符串[]args){
int i;

对于(i=0;i,在Java中不能这样做

您当前的客户端IP地址将禁止服务器在lan连接中选择其他客户端的IP地址


这在Java中是不可能的。

你不能;用于套接字的IP/端口对链接到此套接字。你为什么要这样做?感谢你所做的每一件事…我正在从事一个项目,以保护DNS服务器免受基于DNS反射的攻击,但我无法执行反射部分。我在一些小型项目中使用Java,但我没有在java socket编程中,我希望我能做到这一点,有没有其他方法可以在小范围内进行反射?谢谢你的回答,但我怎么做?我怎样才能使DNS服务器将发送的数据包反射到另一个IP地址?