2009-07-19 14 views
0

Wir versuchen, das Hochladen von Bildern mit TinyPic zu unterstützen, um den Fortschritt des Uploads zu verfolgen. Wir haben HttpWebRequest früher verwendet, aber da dies den Tracking-Fortschritt nicht unterstützt, haben wir beschlossen, Low-Level-Methoden wie TcpClient zu verwenden.Hochladen von Dateien mit NetworkStream

Der Code, wenn sie ausgeführt wird "stecken" in dieser Zeile:

int networkBytesRead = networkStream.Read(buffer, 0, buffer.Length); 

Der Code hängt dort für mehr als eine Minute.

haben Sie einen Blick auf diesen Code für die volle Klasse: http://paste2.org/p/331631

Jede Eingabe geschätzt wird.

Danke, McoreD von ZScreen

+0

Link funktioniert nicht für mich ... –

Antwort

0

Normalerweise ist dieser Fehler verursacht wird, wenn Client und Server nicht synchronisiert sind, dh sein kann der Server zur gleichen Zeit hört, wenn der Client Daten sendet. vielleicht solltest du eine leere Zeile oder etwas anderes senden, um dem Server mitzuteilen, dass er Daten senden soll. HttpWebRequest weiß darum, warum er so gut arbeitet :) Du kannst versuchen, Traffic von tcp snipper im Falle von HttpWebRequest aufzuzeichnen und es zu vergleichen mit dem Verkehr von NetworkStream

+0

Vielen Dank für den Vorschlag. Hab das genau mit Hilfe von Wireshark gemacht und das Problem wurde gelöst. :) – McoreD