package org.droiddraw.util;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class LayoutUploader {
public static boolean upload(String host, int port, String layout)
throws IOException, UnknownHostException
{
return upload(host, port, new ByteArrayInputStream(layout.getBytes()));
}
public static boolean upload(String host, int port, File f)
throws IOException, UnknownHostException
{
return upload(host, port, new FileInputStream(f));
}
public static boolean upload(String host, int port, InputStream layout)
throws IOException, UnknownHostException
{
InetAddress addr = InetAddress.getByName(host);
return upload(addr, port, layout);
}
public static boolean upload(InetAddress addr, int port, InputStream layout)
throws IOException
{
Socket s = new Socket(addr, port);
OutputStream os = s.getOutputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = in.readLine();
if (line == null || line.startsWith("Denied")) {
return false;
}
byte[] buff = new byte[1024];
int read = layout.read(buff);
while (read != -1) {
os.write(buff, 0, read);
read = layout.read(buff);
}
os.flush();
s.close();
return true;
}
public static void main(String[] args)
throws IOException, UnknownHostException
{
upload(args[0], Integer.parseInt(args[1]), new File(args[2]));
}
}