Я предполагаю, что вопрос сформулирован неправильно. Я нашел это при поиске ответа на вопрос, почему мое использование InputStream и OutputStream, по-видимому, устанавливало весь массив в 0 при обнаружении байта значения 0. Предполагают ли они, что байты содержат действительный ASCII, а не двоичный. Поскольку вопрос не подходит и не задает его, и никто другой, кажется, не воспринял это как возможность, я думаю, мне придется выполнить свой квест в другом месте.
Я пытался написать класс TransparentSocket, который может создать экземпляр TCP (Socket / ServerSocket) или UDP (DatagramSocket) для прозрачного использования DatagramPacket. Он работает для UDP, но не (пока) для TCP.
Последующее наблюдение: я, кажется, убедился, что эти потоки сами по себе бесполезны для двоичных передач, но что они могут быть переданы в более дружественный для программиста экземпляр, например,
новый DataOutputStream (socket.getOutputStream ()). WriteInt (5);
^ Так много для этой идеи. Он записывает данные «переносимым» способом, то есть, вероятно, в ASCII, что совсем не помогает, особенно при эмуляции программного обеспечения, которое я не контролирую!