Мой сервер прослушивает 2 порта, и он должен выполнять отдельные функции на каждом порту одновременно.
Моя проблема в том, что сервер блокируется, пока клиент первого порта не будет подключен первым.
Например: если второй клиент попытался подключиться ко 2-му порту до того, как клиент подключится к 1-му порту, он не позволит ему соединиться.
Я создал 2 класса, которые распространяются на класс потоков, поэтому они должны ждать любого клиента параллельно, а не блокировать то, что следует за ними.Но, похоже, он не работает так, как я ожидал.
public static void main(String[] args) throws Exception {
System.out.println("server is running.");
int clientNumber = 0;
ServerSocket listenerTrans = new ServerSocket(9899);
ServerSocket listenerDeter = new ServerSocket(9898);
try {
while (true) {
new Deteriment(listenerDeter.accept(), clientNumber++).start();
new Transpose(listenerTrans.accept(), clientNumber++).start();
}
} finally {
listenerTrans.close();
listenerDeter.close();
}
}
Deteriment и Transpose - мои классы, которые расширяются до класса потока.
Я хочу, чтобы listenerDeter.accept ()чтобы не блокировать listenerTrans.accept (), я хочу, чтобы оба потока accept () происходили параллельно.Кроме того, почему это не происходит параллельно в моем коде?