Java 同时向多个ip地址发送ping

Java 同时向多个ip地址发送ping,java,ping,xml,text,Java,Ping,Xml,Text,我做了一个代码,希望发送一个ping到多个ip地址,并从每个ping请求中获取时间值,然后打印并将结果写入一个文本文件中的矩阵中……无论如何,我的问题是,在我完成代码后,我发现我应该同时向这些地址发送ping,或者在我的代码中连续发送地址。我真的希望如果有人帮我。。。 代码: 导入java.awt.Color; 导入java.awt.Container; 导入java.awt.FlowLayout; 导入java.awt.event.ActionEvent; 导入java.awt.event.A

我做了一个代码,希望发送一个ping到多个ip地址,并从每个ping请求中获取时间值,然后打印并将结果写入一个文本文件中的矩阵中……无论如何,我的问题是,在我完成代码后,我发现我应该同时向这些地址发送ping,或者在我的代码中连续发送地址。我真的希望如果有人帮我。。。 代码:

导入java.awt.Color;
导入java.awt.Container;
导入java.awt.FlowLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.io.PrintWriter;
导入java.util.ArrayList;
导入java.util.Formatter;
导入java.util.List;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JTextField;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.parserConfiguration异常;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入org.xml.sax.SAXException;
公共类Pinggg扩展了JFrame{
private boolean stop=false;//启动或停止ping
公共平{
容器cp=this.getContentPane();
cp.setLayout(新的FlowLayout(FlowLayout.CENTER,10,10));
JButton btnStart=新JButton(“Demarer le测试”);
cp.add(btnStart);
btnStart.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件evt){
停止=错误;
试一试{
最终格式化程序x=新格式化程序(“C:/Users/VAIO/workspace/tcc/gastoon/kkk.txt”);
版画作家;
writer=新的PrintWriter(“C:Users/VAIO/workspace/tcc/gastoon/kkk.txt”);
对于(int m=0;m<10;m++){
如果(停止)中断;
//检查停止按钮是否已按下,
//这会将停止标志更改为true
DocumentBuilderFactory BuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder db=BuilderFactory.newDocumentBuilder();
documentdoc=db.parse(“C:/Users/VAIO/workspace/tcc/gastoon/adresStore.xml”);
doc.normalize();
nodelistrootnodes=doc.getElementsByTagName(“连接”);
节点rootNode=rootNodes.item(0);
元素rootElement=(元素)rootNode;
NodeList l=rootElement.getElementsByTagName(“用户”);
节点用户=l.item(0);
元素=(元素)用户;
NodeList nl=element.getElementsByTagName(“用户”);
List allIps=new ArrayList();

对于(inti=0;i这取决于你所说的“我应该同时向这些地址发送ping”的意思

1) 创建一个threadppol并通过它发送您的请求。这将批量处理您的ping请求(达到线程池的大小)。但是从技术上讲,这不是“同时”


2) Ping广播地址。这是否有效(或者更确切地说,它如何有效)取决于您的网络设置。它在Internet上不起作用,但可能在公司局域网上起作用。因此,这取决于您尝试ping的IP地址的性质。

@yoonix,投票迁移问题,我们会将其转移。格式太糟糕了……您的问题是什么?这只是一个200多行的代码转储。
   import java.awt.Color;
   import java.awt.Container;
   import java.awt.FlowLayout;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
   import java.io.BufferedReader;
   import java.io.FileNotFoundException;
   import java.io.IOException;
    import java.io.InputStreamReader;
   import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.Formatter;
   import java.util.List;

   import javax.swing.JButton;
  import javax.swing.JFrame;
    import javax.swing.JLabel;
  import javax.swing.JTextField;
   import javax.xml.parsers.DocumentBuilder;
  import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.parsers.ParserConfigurationException;

  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
   import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;


 public class Pinggg extends JFrame{
    private boolean stop = false;  // start or stop the ping



public Pinggg(){
   Container cp = this.getContentPane();
   cp.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));

   JButton btnStart=new JButton("demarrer le test");   
   cp.add(btnStart);
   btnStart.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent evt) {

        stop = false;
        try {
            final Formatter x = new Formatter("C:/Users/VAIO/workspace/tcc/gastoon/kkk.txt");
            PrintWriter writer;
            writer = new PrintWriter("C:Users/VAIO/workspace/tcc/gastoon/kkk.txt");

             for (int m = 0; m < 10; m++) {
                 if (stop) break;
                     // check if STOP button has been pushed,

                                    //  which changes the stop flag to true



               DocumentBuilderFactory BuilderFactory=DocumentBuilderFactory.newInstance(); 


                 DocumentBuilder db=BuilderFactory.newDocumentBuilder();
                 Document doc=db.parse("C:/Users/VAIO/workspace/tcc/gastoon/adresStore.xml");
                 doc.normalize();


                 NodeList rootNodes=doc.getElementsByTagName("connection");
                 Node rootNode=rootNodes.item(0);
                 Element rootElement=(Element) rootNode;

                 NodeList l=rootElement.getElementsByTagName("users");
                 Node users=l.item(0);
                 Element element=(Element) users;

                 NodeList nl=element.getElementsByTagName("user");
                 List<String> allIps = new ArrayList<String>();

                  for(int i=0;i<nl.getLength();i++){

                   Node user=nl.item(i);
                   Element ele=(Element) user;
                   String adrss=ele.getElementsByTagName("ipAdress").item(0).getTextContent();//+" -n 1";
                   //System.out.println(adrss);
                   allIps.add(i, adrss);
                   //writer.print(allIps.get(i)+" ");
                   //  System.out.println(adrss);
                   //System.out.println(i);

                   //   writer.format("%s  ",i);
                   //writer.println( adrss);
                  }


                //  for(String n : allIps)

               //{
                //    writer.print(allIps+" ");   
               //}
                  writer.println("\n");






                    for(int j=0;j<allIps.size();j++)
                     {
                        //writer.print(allIps.get(i)+" ");


                         String pingCmd = "ping " +allIps.get(j) +" -n 1";
                         String pingResult = "";
                         String str="";

                          try {
                           Runtime r = Runtime.getRuntime();
                           Process p = r.exec(pingCmd);

                           BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
                           String inputLine;
                             while ((inputLine = in.readLine()) != null) 
                                    {

                               // writer.println(inputLine);

                                //System.out.println(inputLine);
                                  pingResult += inputLine;
                                    }

                                 String[] lines = pingResult.split("\n");
                                 List<String> bb = new ArrayList<String>();

                                    for (int k=0;k<lines.length;k++) {



                                     String line=lines[k];

                                      if ((line.contains("temps=") && (line.contains(allIps.get(j))))){
                                       // Find the index of "time="
                                       int index = line.indexOf("temps=");
                                       String time = line.substring(index + "temps=".length(),line.indexOf("ms"));
                                       //bb.add(time);
                                     //  writer.print(allIps.get(j)+" ");
                                       writer.print(time);

                                       //System.out.println(allIps.get(j)+" ");

                                       System.out.println(time);
                                         }
                                      else {
                                          writer.print("NON"+" ");
                                      }

                                       }
                                      int[]tab=new int[allIps.size()];
                                        for(int d=0;d<tab.length;d++ ){

                                    }


                                    }





                         catch (IOException ie) {
                            System.out.println(ie);
                         }


                }}

          writer.flush(); 
             }//}


  catch (SAXException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
} 
   catch (IOException e1)
{
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

    catch (ParserConfigurationException e1)
  {
// TODO Auto-generated catch block
e1.printStackTrace();
  } 


              }    

        }



   );






      JButton btnStop = new JButton("Analyser le test ");
      cp.add(btnStop);
      btnStop.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent evt) {
            stop = false;  // set the stop flag
         }
      }); 






      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      cp.setBackground(Color.black);
      setTitle("PING");
      setSize(300, 120);
      setVisible(true);

      }     

       }