I second Sergey's answer, the Socket Connection is failing.
You should also write that different:
try{
sc.setReceiveBufferSize(163840);
sc = new Socket("46.247.186.175", 8090);
SocketAddress sa = new InetSocketAddress("46.247.186.175", 8090);
sc.connect(sa);
}
catch(Exception x) {
System.out.println(x.printStackTrace()); }
I also recommend better naming of variables - you will loose track with sc/sa/s... . Name them "socket" and "address" and so on.