Explicación para la implementación del protocolo SCP en la biblioteca JSch
Estoy contemplando un ejemplo del uso de la biblioteca JSch que se puede encontrar aquí:
http://www.jcraft.com/jsch/examples/ScpFrom.java.html
No puedo entender varios patrones de código de este ejemplo. Aquí están:
¿Hay alguna razón para preferir SCP sobre SFTP, que se puede ejecutar con la misma biblioteca?
¿Por qué corremos?scp -f <remote file>
en host remoto en lugar de ejecutarse simplementescp source_file_path destination_file_path
? ¿Por qué la ejecución en host remoto es mejor?
Al comienzo de la transferencia hay una línea.
while(true){
int c=checkAck(in);
if(c!='C'){
break;
}
...
cual es el significado de este mágicoC
¿letra? Por quéC
?
¿Por qué enviar esta señal todo el tiempo?
// send '\0'
buf[0]=0; out.write(buf, 0, 1); out.flush();
¿Cómo puede leer esto el tamaño del archivo?
long filesize=0L;
while(true){
if(in.read(buf, 0, 1)<0){
// error
break;
}
if(buf[0]==' ')break;
filesize=filesize*10L+(long)(buf[0]-'0'); //What is this??
}