Laden...

FileServer/-Client

Erstellt von Big Al vor 18 Jahren Letzter Beitrag vor 18 Jahren 4.729 Views
B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 18 Jahren
FileServer/-Client

Hi,
ich hab hier mal einen Server und einen Client für Dateien gebastelt,
weiß aber nicht, ob er nur im LAN oder auch übers Internet funktioniert.
Bei mir funktioniert alles einwandfrei, bei einem anderen PC gabs aber eine
NullReference-Exception, wenn der Client connected hat.
Wenn es bei noch mehr Leuten so ist, würd ich das gern wissen, damit ich
den Fehler beheben kann.
Über Verbesserungsvorschläge würde ich mich natürlich auch sehr freuen.
Viele Grüße,
Big Al

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

D
481 Beiträge seit 2005
vor 18 Jahren

So hab da mal n wenig rumgespielt und hab n paar Sachen gefunden, die man besser machen könnte:

1.Wenn ich beim Server auf den Button "Server Schließen" und dann auf Beenden gehe, bekomm ich ne NullReferenz Exception.
2.Der Server wird nicht immer ganz korrekt heruntergefahren und wenn ich dann den Server neu starte bekomm ich ne SocketException, weil ja der alte Server noch läuft.
3.Bei nem File, dass 100MB hatte, funktioniert der Transfer nicht. Der Server meint nur so etwas wie: "In die Übertragungsverbindung können keine Daten geschrieben werden. Ein Socketvorgang konnte nicht ausgeführt werden, da dem System Pufferspeicher fehlte oder eine Warteschlange voll war.
4.Wäre es nett so ne Visualisierung zu haben, wie weit der Download vorangeschritten ist.

Sieht aber trotzdem recht gut aus. War auch mal an so nem FileServer/Client dran, nur ich habs aufgegeben, wegen nem Bug, den sich keiner erklären kann 🙁

Dexter

Programmierer sind Maschinen die Koffein in Quellcode umsetzen.

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 18 Jahren

Hi,
ich glaub die ersten Probleme hab ich gelöst, aber wie ich den Pufferspeicher erweitern kann o.ä. weiß ich nicht.
Es gibt da Socket.SendFile(string filename), aber ich hab keine
Socket.ReceiveFile(...) gefunden. In der Doku stand auch nix dazu.
Hat jemand Ahnung, wie man das verbessern könnte?
So sende ich die Datei:


FileStream fs = new FileStream(this._SourceFolder + "/" + filename, FileMode.Open);
int Length = System.Convert.ToInt32(fs.Length);
byte[] Data = new byte[Length];
fs.Read(Data, 0, Length);
binarywriter.Write(Length);
binarywriter.Write(Data);
fs.Close();

Und so empfängt der Client:


string FileName = this.checkedListBox1.Items[c].ToString();	
FileStream fs = new FileStream(this._InputFolder.FullName + @"\" + FileName, FileMode.Create);
int Length = binaryreader.ReadInt32();
if(Length != 0)
{
byte[] Data = new byte[Length];
Data = binaryreader.ReadBytes(Length);
fs.Write(Data, 0, Length);
fs.Close();
}

Wäre für jeden Tipp dankbar

Big Al

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Big Al,

warum scheibst du überhaupt so ein Programm? Es gibt doch FTP. Ein eigenes Protokoll für den Datei-Transfer zu verwenden macht m.E. nicht viel Sinn.

herbivore

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 18 Jahren

Ich hab das nur so als Übung geschrieben.
Ist übrigens mein erstes Projekt, das ich vollständig fertiggestellt habe.
Ich denke, dass ich dabei viel gelernt habe und darauf kam es mir eigentlich an.
Viele Grüße,
Big Al

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Big Al,

gut, dass kann ich verstehen. Finde ich nur wichtig, dass die potentiellen Benutzer das auch wissen. Danke für die Klarstellung.

herbivore

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 18 Jahren

Hallo,
FTP hab ich mir noch nie angeschaut. Ist das nicht nur fürs Internet?
Ich wollt euch mal fragen, ob es sich lohnt, das Ding weiterzuverfolgen.
Scheint zwar bessere Möglichkeiten zu geben, aber kann man sowas brauchen?
Ich werd jetzt mal versuchen, auch Ordner versenden zu können, indem ich sie vorher mit der #ZpLib verpacke und beim Client wieder entpacke.
Glaubt ihr das lohnt sich?
Big Al

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Big Al,

FTP hab ich mir noch nie angeschaut. Ist das nicht nur fürs Internet?

FTP funktioniert wie jedes Internetprotokoll auch im LAN oder sogar lokal.

Scheint zwar bessere Möglichkeiten zu geben, aber kann man sowas brauchen?

Ich finde es nicht so sinnvoll das Rad neu zu erfinden. Insbesondere nicht, wenn es schon einen weltweit etablierten Standard wie FTP gibt.

Glaubt ihr das lohnt sich?

Als Übung für doch sicher schon, ansonsten denke ich eher nicht.

herbivore

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 18 Jahren

Vielen Dank,
ich glaub ich arbeite mich mal in FTP ein.
Big Al

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.