оновлення в java9: https://docs.oracle.com/javase/9/docs/api/java/io/InputStream.html#transferTo-java.io.OutputStream-
Я бачив кілька подібних, але не зовсім те, що мені потрібно.
У мене є сервер, який в основному буде приймати вхідні дані від клієнта, клієнта A, і пересилати його, байт за байтом, іншому клієнту, клієнту B.
Я хотів би пов’язати свій вхідний потік клієнта A з моїм вихідним потоком клієнта B. Чи можливо це? Які способи це зробити?
Крім того, ці клієнти надсилають один одному повідомлення, які дещо залежать від часу, тому буферизація не спрацює. Я не хочу буфер, скажімо, 500, і клієнт надсилає 499 байт, а потім мій сервер затримує переадресацію 500 байт, оскільки він не отримав останній байт для заповнення буфера.
Зараз я аналізую кожне повідомлення, щоб знайти його довжину, потім читаю байти довжини, потім пересилаю їх. Я припустив (і перевірив), що це було б краще, ніж читання байта і пересилання байта знову і знову, оскільки це було б дуже повільно. Я також не хотів використовувати буфер або таймер з тієї причини, яку зазначив у своєму останньому абзаці - я не хочу, щоб повідомлення, які чекають дуже довго, просто через те, що буфер не заповнений.
Який хороший спосіб це зробити?