Я не силён в Java, но мне кажется, что такой код

Код:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(9587);
Socket socket = server.accept();
PrintWriter out = new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
out.println("Hello");
server.close();
socket.close();
}
}
не ждёт коннекта от клиента, а закрывается сразу после открытия. И не понятно, куда и кому отправляется этот "Hello". По крайней мере, логика сокета отличается от других языков. Я бы попробовал сделать сервер на каком-нибудь визуальном языке (Delphi, например), где установка сервера делается несколькими нажатиями и протестировать клиента.
На крайний случай, проверить живой ли сервер можно через Telnet.