Портом по умолчанию для FTP (протокола передачи файлов) является порт номер 21. Вот несколько методов с примерами кода для работы с FTP на различных языках программирования:
-
Python:
import ftplib # Connect to FTP server ftp = ftplib.FTP("ftp.example.com") ftp.login("username", "password") # List files in the current directory files = ftp.nlst() print(files) # Download a file filename = "example.txt" with open(filename, "wb") as file: ftp.retrbinary("RETR " + filename, file.write) # Upload a file filename = "example.txt" with open(filename, "rb") as file: ftp.storbinary("STOR " + filename, file) # Disconnect from the FTP server ftp.quit()
-
Java:
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; public class FTPExample { public static void main(String[] args) { FTPClient ftp = new FTPClient(); try { // Connect to FTP server ftp.connect("ftp.example.com", 21); ftp.login("username", "password"); // List files in the current directory String[] files = ftp.listNames(); for (String file : files) { System.out.println(file); } // Download a file String filename = "example.txt"; ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.retrieveFile(filename, new FileOutputStream(filename)); // Upload a file filename = "example.txt"; ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.storeFile(filename, new FileInputStream(filename)); // Disconnect from the FTP server ftp.logout(); ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } }
-
C#:
using System; using System.IO; using System.Net; class Program { static void Main(string[] args) { string server = "ftp://ftp.example.com"; string username = "username"; string password = "password"; // List files in the current directory FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server); request.Method = WebRequestMethods.Ftp.ListDirectory; request.Credentials = new NetworkCredential(username, password); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string line = reader.ReadLine(); while (!string.IsNullOrEmpty(line)) { Console.WriteLine(line); line = reader.ReadLine(); } reader.Close(); response.Close(); // Download a file string filename = "example.txt"; request = (FtpWebRequest)WebRequest.Create(server + "/" + filename); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential(username, password); response = (FtpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader fileStream = new StreamReader(stream); using (StreamWriter writer = new StreamWriter(filename)) { writer.Write(fileStream.ReadToEnd()); } fileStream.Close(); response.Close(); // Upload a file filename = "example.txt"; request = (FtpWebRequest)WebRequest.Create(server + "/" + filename); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(username, password); using (FileStream fileStream = new FileStream(filename, FileMode.Open)) { byte[] buffer = new byte[1024]; int bytesRead; Stream requestStream = request.GetRequestStream(); while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0) { requestStream.Write(buffer, 0, bytesRead); } requestStream.Close(); } // Disconnect from the FTP server Console.WriteLine("File uploaded!"); } }