在Java中获得相同的Netcat输出

时间:2016-03-05 13:01:57

标签: java sockets port serversocket netcat

我希望在终端(使用Netcat)中获得相同的输出(使用Java):

nc -l localhost 8080

我得到的输出是:

GET /?code=Mdf81e469-fca0-f04e-db95-278aff0323be HTTP/1.1
Host: localhost:8080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de
Connection: keep-alive
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4

我需要这个,因为GET之后的第一行输出。我想将它作为Java中的String值。

1 个答案:

答案 0 :(得分:0)

您可以使用Runtime类的exec方法执行此命令并返回结果。以下是一个小例子,您可以根据自己的要求进行修改:

  String[] commands = new String[]{"nc", "localhost", "8080"};
  Process childProc = Runtime.getRuntime().exec(command);
  InputStream in = childProc.getInputStream();
  int c;
  while ((c = in.read()) != -1) 
  {
    System.out.print((char)c);
  }
  in.close();

希望这有帮助!