Я пытаюсь адаптировать мой простой сервер сокетов, чтобы он мог иметь несколько TCP-соединений через многопоточность, но я не могу заставить его работать. Мой код до сих пор следующий, я не совсем уверен, куда идти отсюда:
import java.net.*;
import java.io.*;
public class DoSomethingWithInput implements Runnable {
private final Socket clientSocket; //initialize in const'r
public void run() {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String nextline;
while ((nextline = in.readLine())!=null) {
System.out.println(nextline);
} //... close socket, etc.
}
}
public class Socket{
public Socket() {
}
@Override
public void run() {
try {
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(5432);
for (;;) {
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(5432);
for (;;) {
Socket clientSocket = null;
clientSocket = serverSocket.accept();
//delegate to new thread
new Thread(new DoSomethingWithInput(clientSocket)).start();
}
}
}catch (IOException e) {
System.err.println("Could not listen on port: 5432.");
System.exit(1);
}
}
}
Кто-нибудь сможет дать мне несколько указателей на то, как я могу это сделать, и почему моя текущая реализация не будет работать? Здесь я читал подсказки в учебнике Java http://download.oracle.com/javase/tutorial/networking/sockets/examples/KKMultiServerThread.java, но пример, который они здесь приводят, похоже, использует множество внешних источников и классов как KnockKnockProtocol и т.д. и т.д.
Кто-нибудь сможет мне помочь?
Большое спасибо!