Я знаю, что вы можете позвонить socket.setReceiveBufferSize(int)
и socket.getReceiveBufferSize()
.Есть ли способ узнать в Java максимально допустимый базовый считываемый буфер сокета TCP, настроенный в ОС?
Вы можете сделать что-то вроде:
socket.setReceiveBufferSize(Integer.MAX_VALUE);
int after = socket.getReceiveBufferSize();
if (after != Integer.MAX_VALUE) System.out.println("That did not work!");
Основываясь на этом, я хотел бы написать Algo, чтобы правильно угадать максимальный основной сокет чтения размера буфера, выполненный на уровне операционной системы. Как я могу это сделать? Двоичный поиск? Или есть гораздо более простой способ?