Я пытаюсь использовать lrzsz для отправки файла по zmodem путем чтения stdio в java и пересылки его в сокет подключенного клиента.Попытка отправить файл с помощью zmodem с помощью lrzsz через java telnet server
private void sendFiles(ArrayList<String> filenames) {
Process p;
ProcessBuilder pb;
filenames.add(0, "/opt/local/bin/sz");
try {
pb = new ProcessBuilder(filenames);
p = pb.start();
InputStreamReader lrzszin = new InputStreamReader(p.getInputStream());
OutputStreamWriter lrzszout = new OutputStreamWriter(p.getOutputStream());
InputStreamReader telnetin = new InputStreamReader(socket.getInputStream());
OutputStreamWriter telnetout = new OutputStreamWriter(socket.getOutputStream());
while (p.isAlive()) {
if (lrzszin.ready()) {
telnetout.write(lrzszin.read());
telnetout.flush();
}
if (telnetin.ready()) {
lrzszout.write(telnetin.read());
lrzszout.flush();
}
}
} catch (IOException ex) {
}
}
Однако zmodem загружается через поврежденный. и он ошибается.
Это для telnet BBS. Я просто попробовал SEXYZ из пакета Synchronet BBS, у которого есть опция telnet и опция stdio, но все же она не работает. И это говорит «через сервер telnet java» в моем заголовке вопроса. –
Последним вариантом было бы реализовать протокол Telnet в вашем коде. Это должно быть довольно просто для ваших целей; Я обновлю ответ. –
Я решил это .. Кажется, мне нужно было установить правильные кодировки символов для моих читателей и писателей. –