Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [C#] FTP - połączenie i transfer plików
tiraeth
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Serii C# ciąg dalszy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chcę wykorzystać protokuł FTP do przesyłania plików na serwer ale nie wiem jakiej klasy mam użyć do tego. Fajnie, jakby jeszcze można było pokazać pasek postępu, jeżeli ktoś wie jakiej klasy mam użyć do obsługi FTP w C# to proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dobra, napisałem coś takiego:

Kod
    public class FTPClient
    {
        Socket _ftpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        string _ftpHost = "";
        int    _ftpPort = 21;           // Default FTP port
        IPHostEntry _ftpHostEntry;

        byte[] inBuf = new byte[32 * 1024];
        int    inLen;

        public string Connect(string host, int port)
        {
            // Setting host/port
            _ftpHost = host;
            _ftpPort = port;
            _ftpHostEntry = Dns.GetHostEntry(_ftpHost);

            // Connecting to FTP Server
            _ftpSocket.Connect(new IPEndPoint(_ftpHostEntry.AddressList[0], _ftpPort));

            inLen = _ftpSocket.Receive(inBuf);
            return Encoding.ASCII.GetString(inBuf, 0, inLen); // Return CONNECT string
        }

        public string Login(string user, string password)
        {
            string retString = "";

            // Logon user to server
            _ftpSocket.Send(Encoding.ASCII.GetBytes("USER " + user + "\r\n"));
            retString = "Client: USER + " + user + "\r\n";

            inLen = _ftpSocket.Receive(inBuf);
            retString += "Server: " + Encoding.ASCII.GetString(inBuf, 0, inLen);

            _ftpSocket.Send(Encoding.ASCII.GetBytes("PASS " + password + "\r\n"));
            retString += "Client: PASS + " + password + "\r\n";

            inLen = _ftpSocket.Receive(inBuf);
            retString += "Server: " + Encoding.ASCII.GetString(inBuf, 0, inLen);

            return retString;
        }
    }


Działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Więc już wszystko będzie wporządku, chciałbym jeszcze tylko wiedzieć jak mogę uzupełniać TextBox w czasie wykonywania połączenia, tzn. połączony to niech wypisze to "220..." i niech czeka na odpowiedź od serwera przy Login() i dopiero po otrzymaniu odpowiedzi doda to TextBoxa kolejne linijki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 02:16