Я пытаюсь написать, чтобы написать named pipe
по соединению, которое облегчает jsch
.ОАО «НК» пишет по именованной трубе
// connect to server
JSch ssh = new JSch();
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
// write to pipe
OutputStream strm = sftpChannel.put(remoteFile);
// failed attempts
// BufferedWriter wrtr = new BufferedWriter(new PrintWriter(new OutputStreamWriter(strm)));
// PrintWriter wrtr = new PrintWriter(new BufferedOutputStream(strm));
// Current version
BufferedWriter wrtr = new BufferedWriter(new PrintWriter(strm));
wrtr.write("hello world");
wrtr.flush();
session.disconnect();
sftpChannel.disconnect();
wrtr.close();
Подключение к серверной части, по существу, точная копия: SSH connection with Java
код будет даже ждать чего-то, чтобы читать трубу с другой стороны, это означает, что, если я не использую:
cat pipe
он будет ждать, пока я сделать это, а затем один раз он у меня не будет печатать ничего и вызов трубы кошка будет закончена. По существу, кажется, что я пишу ""
на трубку вместо «hello world»
Любая помощь будет очень признательна, спасибо.
Вы сначала попытались сделать то же самое с помощью какого-либо клиента SFTP командной строки? Это может быть сервер SFTP, который вызывает проблемы, а не ваш код. –
Да, я пробовал, что писать на именованный канал с java на сервере в порядке. –
Нет, я имею в виду, если вы попытались написать именованный канал поверх SFTP (удаленно) с помощью SFTP-клиента. –