Ergebnis 1 bis 4 von 4
  1. #1
    Anfänger
    Registriert seit
    24.10.2010
    Beiträge
    21

    Standard FTP Client: Nervende Exception

    Hallo, ich habe gestern schon was unnötiges gepostet aber jetzt habe ich wirklcih ein Problem.
    schaut hier...

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    
    namespace ftpWinForms
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private byte[] downloadData;
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                
                
                if (textBox1.Text == "suljica" && textBox2.Text == "keineahnungok")
                {
                    button1.Enabled = false;
                    textBox1.Text = "";
                    textBox2.Text = "";
                    MessageBox.Show("Daten wurden akzeptiert, Verbindung zum  Server wird hergestellt, bitte warten...", "Zugriff bestätigt",  MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FtpWebRequest HIT = FtpWebRequest.Create("ftp://rapidmind.99k.org/") as FtpWebRequest;
                    HIT.Credentials = new NetworkCredential("rapidmind_99k",  "Ke1neahnungok@@"); //{UserName = "versteckt", Password = "versteckt"    };
    
                    HIT.Method = WebRequestMethods.Ftp.ListDirectory;
                    HIT.UsePassive = true;
                    HIT.UseBinary = true;
                    HIT.KeepAlive = true;
    
                                FtpWebResponse Response = HIT.GetResponse() as FtpWebResponse;
                    Stream responseStream = Response.GetResponseStream();
                    StreamReader sr = new StreamReader(responseStream);
    
                    while (!sr.EndOfStream)
                    {
                        listBox1.Items.Add(sr.ReadLine());
                        Application.DoEvents();
                    }
    
                    Response.Close();
                    responseStream.Close();
                    for (int i = 0; i <= 1; i++)
                    {   
                        listBox1.Items.RemoveAt(i);
                    }
                }
                else
                {
                    MessageBox.Show("Benutzername oder Passwort falsch", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            
            private void button2_Click(object sender, EventArgs e)
            {
                string Datei = listBox1.SelectedItem.ToString();    
                if (Datei == "..")
                {
                    MessageBox.Show("Dies ist bloß eine FTP Datei und kann  nicht heruntergeladen werden", "FTP", MessageBoxButtons.OK,  MessageBoxIcon.Information);
                }
                else
                {
                    downloadData = new byte[0];
                    FtpWebRequest HIT = FtpWebRequest.Create("ftp://rapidmind.99k.org/" + Datei) as FtpWebRequest;
                    HIT.Method = WebRequestMethods.Ftp.DownloadFile;
                    HIT.Credentials = new NetworkCredential{UserName = "versteckt", Password = "versteckt"   };
                    HIT.UsePassive = true;
                    HIT.UseBinary = true;
                    HIT.KeepAlive = false;
                    FtpWebResponse Response = HIT.GetResponse() as FtpWebResponse;
                    Stream reader = Response.GetResponseStream();
                    MemoryStream memSream = new MemoryStream();
                    byte[] buffer = new byte[1024];
                    int ByteRead;
                    while (true)
                    {
                        ByteRead = reader.Read(buffer, 0, buffer.Length);
    
                        if (ByteRead == 0)
                        {
                            break;
                        }
                        else
                        {
                            memSream.Write(buffer, 0, ByteRead);
                        }
                        reader.Close();
                        memSream.Close();
                        Response.Close();
    
                        
                    }
                    downloadData = memSream.ToArray();
                }
            }
        }
    }

    Ich krieg folgende Exception:
    Auf das verworfende Objekt kann nicht zugegriffen werden,.
    Objektname: "System.Net.Sockets.Network.Stream".
    Geändert von AlterHacker (28.11.2010 um 19:42 Uhr) Grund: I <3 CODE
    Verschenke Invites für Lockerz.com & WarezFusion.org (noch 38 verfügbar) Einfach per PN melden!

  2. #2
    Bad Times Virus Avatar von Jury
    Registriert seit
    13.04.2010
    Beiträge
    610

    Standard

    Das ist unlesbar. Setz es mal in Codetags oder formatier es vernünftig. Da bekommt man ja Augenkrebs bei...
    Signatur:

  3. #3
    Anfänger
    Registriert seit
    24.10.2010
    Beiträge
    21

    Standard

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    
    namespace ftpWinForms
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private byte[] downloadData;
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                
                
                if (textBox1.Text == "suljica" && textBox2.Text == "keineahnungok")
                {
                    button1.Enabled = false;
                    textBox1.Text = "";
                    textBox2.Text = "";
                    MessageBox.Show("Daten wurden akzeptiert, Verbindung zum Server wird hergestellt, bitte warten...", "Zugriff bestätigt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FtpWebRequest HIT = FtpWebRequest.Create("ftp://rapidmind.99k.org/") as FtpWebRequest;
                    HIT.Credentials = new NetworkCredential("hidden", "hidden"); //{UserName = "hidden", Password = "hidden"   };
    
                    HIT.Method = WebRequestMethods.Ftp.ListDirectory;
                    HIT.UsePassive = true;
                    HIT.UseBinary = true;
                    HIT.KeepAlive = true;
    
                        yFtpWebResponse Response = HIT.GetResponse() as FtpWebResponse;
                    Stream responseStream = Response.GetResponseStream();
                    StreamReader sr = new StreamReader(responseStream);
    
                    while (!sr.EndOfStream)
                    {
                        listBox1.Items.Add(sr.ReadLine());
                        Application.DoEvents();
                    }
    
                    Response.Close();
                    responseStream.Close();
                    for (int i = 0; i <= 1; i++)
                    {   
                        listBox1.Items.RemoveAt(i);
                    }
                }
                else
                {
                    MessageBox.Show("Benutzername oder Passwort falsch", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            
            private void button2_Click(object sender, EventArgs e)
            {
                string Datei = listBox1.SelectedItem.ToString();    
                if (Datei == "..")
                {
                    MessageBox.Show("Dies ist bloß eine FTP Datei und kann nicht heruntergeladen werden", "FTP", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    downloadData = new byte[0];
                    FtpWebRequest HIT = FtpWebRequest.Create("ftp://rapidmind.99k.org/" + Datei) as FtpWebRequest;
                    HIT.Method = WebRequestMethods.Ftp.DownloadFile;
                    HIT.Credentials = new NetworkCredential("hidden", "hidden"); //{UserName = "hidden", Password = "hidden"   };
                    HIT.UsePassive = true;
                    HIT.UseBinary = true;
                    HIT.KeepAlive = false;
                    FtpWebResponse Response = HIT.GetResponse() as FtpWebResponse;
                    Stream reader = Response.GetResponseStream();
                    MemoryStream memSream = new MemoryStream();
                    byte[] buffer = new byte[1024];
                    int ByteRead;
                    while (true)
                    {
                        ByteRead = reader.Read(buffer, 0, buffer.Length);
    
                        if (ByteRead == 0)
                        {
                            break;
                        }
                        else
                        {
                            memSream.Write(buffer, 0, ByteRead);
                        }
                        reader.Close();
                        memSream.Close();
                        Response.Close();
    
                        
                    }
                    downloadData = memSream.ToArray();
                }
            }
        }
    }
    Also ich bekomme die Exception die oben erwähnt wurde.
    Geändert von Armend100 (27.11.2010 um 11:48 Uhr)
    Verschenke Invites für Lockerz.com & WarezFusion.org (noch 38 verfügbar) Einfach per PN melden!

  4. #4
    Anfänger Avatar von The_Funeral
    Registriert seit
    18.02.2008
    Beiträge
    17

    Standard

    Verständlich...

    Du schließt in deiner Schleife alle aktiven/offenen Verbindungen, versucht aber beim nächsten Schleifendurchlauf direkt wieder rein zuschreiben.

    Code:
    // ...                
                   while (true)
                    {
                        ByteRead = reader.Read(buffer, 0, buffer.Length);
    
                        if (ByteRead == 0)
                        {
                            break;
                        }
                        else
                        {
                            memSream.Write(buffer, 0, ByteRead);
                        }
                        reader.Close();
                        memSream.Close();
                        Response.Close();
    
                        
                    }
    // ...
                    downloadData = memSream.ToArray();
    Code:
    ...
     
                   while (true)
                    {
                        ByteRead = reader.Read(buffer, 0, buffer.Length);
    
                        if (ByteRead == 0)
                        {
                            break;
                        }
                        else
                        {
                            memSream.Write(buffer, 0, ByteRead);
                        }
                    }
                    downloadData = memSream.ToArray();
                        reader.Close();
                        memSream.Close();
                        Response.Close();
    ...
    Generell versteh ich nicht ganz, weshalb du es so machst, wie du es machst...
    Wenn du mehre Files hintereinander downloaden willst, wirst du vermutlich auch noch andere Probleme bekommen.

    Du kannst dir ja mal dieses Beispiel von Microsoft anschauen:How to: Download Files with FTP
    Suche: Alles zu C#
    Biete keinen Treuhandservice!

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 04.02.2010, 20:32
  2. Exception in thread "main"
    Von Pr0g4mer im Forum Java
    Antworten: 4
    Letzter Beitrag: 22.08.2008, 16:07
  3. Steam.exe (main exception)[lösung]
    Von bizzit im Forum Games
    Antworten: 2
    Letzter Beitrag: 30.07.2007, 09:04

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •