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