Только для смеха ...
socket = new ServerSocket(2004, 10);
connection = socket.accept();
in = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String line = null;
do {
line = br.readLine();
} while (!"done".equals(line));
С LOOPBACK, т. Е. Просто выполняется на localhost с локальными процессами, на моей машине и с подходящим "глупым" клиентом.
requestSocket = new Socket("localhost", 2004);
out = requestSocket.getOutputStream();
PrintWriter pw = new PrintWriter(out);
String line = "...1000 characters long...";
for (int i = 0; i < 2000000 - 1; i++) {
pw.println(line);
}
line = "done";
pw.println(line);
pw.flush();
Вы заметите, что это посылает 2M строк "1000 символов". Это просто грубый тест производительности.
На моей машине с обратной связью скорость передачи составляет ~ 190 МБ / с. Байты, а не биты. 190 000 строк / сек.
Моя точка зрения заключается в том, что «простой» способ использования Java-сокетов для костей довольно быстр. Это насытит любое обычное сетевое соединение (то есть сеть будет замедлять вас больше, чем ваш ввод-вывод).
Вероятно, "достаточно быстро".
Какой трафик вы ожидаете?