Вот простой сервер "Knock Knock", любезно предоставленный Sun:
import java.net.*;
import java.io.*;
public class KnockKnockServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.err.println("Could not listen on port: 4444.");
System.exit(1);
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
String inputLine, outputLine;
KnockKnockProtocol kkp = new KnockKnockProtocol();
outputLine = kkp.processInput(null);
out.println(outputLine);
while ((inputLine = in.readLine()) != null) {
outputLine = kkp.processInput(inputLine);
out.println(outputLine);
if (outputLine.equals("Bye."))
break;
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
Проще этого не бывает.
Существует прямое руководство, доступное через Солнце:
http://java.sun.com/developer/onletrense/programming/basicjava2/socket.html#server
с базовой отдельной нитью, как указано выше и расширяется, чтобы использовать несколько по мере необходимости.
Попробуйте использовать API Jetty Server. http://wiki.eclipse.org/jettyty/tuTorial /embedding_jetty Похоже, хорошая отправная точка ...
Я бы начал с посмотрения на многоадуляцию в Java:
http://java.sun.com/docs/books/tutorial/networking/datagrams/broadcasting.html
Вам, вероятно, нужно будет использовать класс Serversocket .
Я создал Java-программу, которая в основном реализовала своего рода чат между клиентом и сервером. Использовал сокет, чтобы открыть порт сервера, который бы слышал входящие соединения. Вы должны иметь поток, который слышит их и вызывает действия, когда когда когда-нибудь действительное соединение придет.