В a simple test case я реализовал объединенный сервер потоков на прием до 10 одновременных входящих соединений TLS-PSK на порту 12345 и печать расшифрованы данные на стандартный вывод:Как переназначить объекты для пула с пулом?
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(12345);
ExecutorService pool = Executors.newFixedThreadPool(10);
while (true) {
Socket socket = server.accept();
pool.execute(new MyRunnable(socket));
}
}
Вот является Runnable
реализация используется нитей:
@Override
public void run() {
try {
SecureRandom random = new SecureRandom(); // How to preallocate?
BufferedInputStream bis = new BufferedInputStream(mSocket.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(mSocket.getOutputStream());
TlsServerProtocol proto = new TlsServerProtocol(bis, bos, random);
MockPSKTlsServer server = new MockPSKTlsServer(); // How to preallocate?
proto.accept(server);
Streams.pipeAll(proto.getInputStream(), System.out);
proto.close();
} catch (IOException e) {
System.err.print(e);
}
}
Как предопределить SecureRandom
и MockPSKTlsServer
объекты, используемые Runnable
?
I.e. как создать 10 из обоих объектов в main()
, а затем просто повторно использовать их в run()
?
какая версия Java вы используете? –
Я использую [Java SE 1.8] (https://github.com/afarber/jetty-newbie/blob/master/TlsPskServer2/pom.xml) в Windows и Linux –