Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    137

    C# ClientFTP con libreria TCPClient

    Ciao ragazzi. Ho la necessità di realizzare un client FTP utilizzando la libreria TCPClient. Più o meno ci son riuscito. infatti il mio programma apre una connessione con il server si logga ma non riesco a scaricare il file. Cosa sto sbagliando?Vi riporto di seguito il codice che sto usando
    codice:
                        myClient = new TcpClient("XXXXXXXX", 21);                    
                        break;
                  
    
    
                
                stream = myClient.GetStream();
                int sendOffset = 0;
                int recOffset=0;
    
    
                int dataLength;
                Byte[] receiveData = new Byte[256];
    
    
    
    
                // wait for a response
                dataLength = stream.Read(receiveData, recOffset, receiveData.Length);
                String recvdMessage = System.Text.Encoding.ASCII.GetString(receiveData, 0,                             dataLength);
                Console.WriteLine(recvdMessage.ToString());
                 recOffset+=dataLength;
    
    
    
    
                 String message = "USER root\r\n";
                Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
    
    
                //StreamWriter clientStrimWrite = new StreamWriter(stream);
                //clientStrimWrite.Write(message);
    
    
                stream.Write(data, 0, data.Length);
                sendOffset += data.Length;
    
    
                // wait for a response
                while (!stream.DataAvailable)
                {
                }
                dataLength = stream.Read(receiveData, 0, receiveData.Length);
                recvdMessage = System.Text.Encoding.ASCII.GetString(receiveData, 0, dataLength);
                Console.WriteLine(recvdMessage.ToString());
    
    
                message = "PASS  546\r\n";
                data = System.Text.Encoding.ASCII.GetBytes(message);
                stream.Write(data, 0, data.Length);
    
    
                // wait for a response
                while (!stream.DataAvailable)
                {
                }
                message = "CWD /sdcard\r\n";
                data = System.Text.Encoding.ASCII.GetBytes(message);
                stream.Write(data, 0, data.Length);
    
    
                // wait for a response
                while (!stream.DataAvailable)
                {
                }
                message = "TYPE I\r\n";
                data = System.Text.Encoding.ASCII.GetBytes(message);
                stream.Write(data, 0, data.Length);
    
    
                
                // wait for a response
                while (!stream.DataAvailable)
                {
                }
                message = "PASV\r\n";
                data = System.Text.Encoding.ASCII.GetBytes(message);
                stream.Write(data, 0, data.Length);
    
    
                // wait for a response
                while (!stream.DataAvailable)
                {
                }
                message = "Nome del file";
                data = System.Text.Encoding.ASCII.GetBytes(message);
                stream.Write(data, 0, data.Length);
    
    
                //Acquisizione file
                // wait for a response
               
                string _fileName = @"C:Cartella"\\" + "Nome del file";
                FileInfo _File = new FileInfo(_fileName);
                FileStream _FileStream = new FileStream(_File.FullName, FileMode.Create,                                     FileAccess.Write);
                byte[] buffer = new byte[256];
                int bytesRead = stream.Read(buffer, 0, buffer.Length);
                string responseData = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead);
                //while (bytesRead != 0)
                var reader = new StreamReader(myClient.GetStream());
                while (myClient.Connected)
                {
                    string line = reader.ReadLine();                
                    //_FileStream.Write(buffer, 0, bytesRead);
                    //bytesRead = stream.Read(buffer, 0, 2048);
                }
                _FileStream.Close();
    Nel file che vien memorizzato sono riportate le istruzioni che ho inviato al server e non i dati che mi aspetto
    Ultima modifica di MItaly; 13-05-2015 a 23:47

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.