既存のライブラリやサードパリティソリューションを使用せずに、FTPを使用してサーバーからファイルをダウンロードする必要があります。サーバーに接続してログインし、転送のタイプモード(ASCII)とパッシブモードをポストすることができたので、ポート番号を取得して新しいServerSocket(ポート)を開きました。しかし、RETR fileNameを呼び出すと、InputStream.readLine()でプログラムがブロックされます(サーバーポートの読み取りで、サーバーが応答しないことを意味します)RETRコマンドを呼び出す前に、忘れたことがありますか?
//PASV
outputStream.println("pasv");
//227 Entering Passive Mode(a1,a2,a3,a4,p1,p2)
String response = inputStream.readLine();
// port = p1*256 + p2
ServerSocket serverSocket = new ServerSocket(port);
//RETR fileName
outputStream.println("retr "+ fileName);
//server no answer
String reply = inputStream.readLine()