ERLEDIGT
JA
JA
ANTWORTEN
20
20
ZUGRIFFE
8514
8514
EMPFEHLEN
-
Hi, Danke für die Antwort. Er sendet so nur ganz ganz langsam und auch nur bis 204kb wenn es um eine Zip datei geht. Hast du evt. noch eine Idee?
Grüße.
also mit deinen beispiel sende ich diese und mit folgendes lese ich die Datei wieder aus:
Code :1 2 3 4 5 6 7 8 9
[b][color=#0000ff]while[/color][/b][color=#0000ff][/color][color=#006400](([/color]i [color=#006400]= [/color]stream[color=#006400].[/color][b][color=#191970]Read[/color][/b][color=#191970][/color][color=#006400]([/color]bytes[color=#006400], [/color][color=#00008b]0[/color][color=#006400], [/color]bytes[color=#006400].[/color]Length[color=#006400]))!=[/color][color=#00008b]0[/color][color=#006400]) [/color] [color=#006400]{ [/color] [color=#006400]StreamWriter sw [color=#006400]= [/color][b][color=#008b8b]new [/color][color=#191970]StreamWriter[/color][/b][color=#191970][/color][color=#006400]([/color]Application[color=#006400].[/color]StartupPath [color=#006400]+ [/color][color=#ff00ff]"\" [/color][color=#006400]+ [/color][color=#ff00ff]"speichern.zip"[/color][color=#006400], [/color][b][color=#008b8b]true[/color][/b][color=#008b8b][/color][color=#006400]);[/color][/color] [color=#006400][color=#000000]sw[/color][color=#006400].[/color][color=#000000]NewLine [/color][color=#006400]= [/color][color=#ff00ff]""[/color][color=#006400];[/color][/color] [color=#006400]sw[color=#006400].[/color][b][color=#191970]WriteLine[/color][/b][color=#191970][/color][color=#006400]([/color]bytes[color=#006400]);[/color][/color] [color=#006400]sw[color=#006400].[/color][b][color=#191970]Close[/color][/b][color=#191970][/color][color=#006400](); [/color][/color] [color=#006400][color=#006400]....[/color][/color] [size=1][color=#006400][size=1][color=#006400][size=2]}[/size][/color][/size][/color][/size] [color=#006400][/color]
Grüße
-
28.06.05 16:25 #17
- Registriert seit
- May 2005
- Beiträge
- 33
Hi!
Nur der Vollständigkeit halber, hab grad folgendes gelesen:
Buffer class is applicable to the following primitive types: Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Single, and Double.
String fällt also leider nicht unter primitive types. Sorry!!
Weiter gutes Gelingen...
-
Alles klaro macht nichts, Danke für die Infos. Vielleicht eine Andere Idee hast du nicht, oder
Grüße
-
28.06.05 19:04 #19
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Hi.
Habe den Thread jetzt nur so überflogen, aber du solltest dir bissl mehr Gedanken noch machen!
Einfach wild drauf los die Daten einer Datei zu senden ist nicht so geschickt, was ist wenn die gegenseite die Dateien nicht will? Oder woher soll der Empfänger nun wissen was für eine Datei du ihm schickst? (Dateiname..)
Also solltest du dem Empfänger zuerst ein "Angebot" machen und dann warten was er dazu zu sagen hat. Wenn er die Datei haben will, schick sie ihm, wenn nicht, mach was anderes. Zusätzlich wäre ein Timeout nicht schlecht, nachdem du aufhörst auf das Ok bzw. Nein zu warten.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S = Sender E = Empfänger | S | E | |-------------------------------------------| | FILE bla.zip | *wartet* | | *wartet* | OK bla.zip | | *daten senden* | *daten empfangen* | oder | S | E | |-------------------------------------------| | FILE bla.zip | *wartet* | | *wartet* | ERROR bla.zip | | *beenden* | *entscheide du* |
Im Anhang findest nen Beispiel.
Die Dateien jeweils extra zu einer ausführbaren Datei kompilieren. Zuerst den Receiver starten, danach den Sender. Beim Sender wirst ausserdem noch die IPAdresse ändern wollen. Einfach mal den Empfänger starten, steht dann dort auf welche IP er lauscht.
(Wie gesagt, einfaches Beispiel)
Beim Sender kannst dann den Pfad zu einer lokalen Datei angeben, diese wird dann gesendet. Beim Empfänger muss der Transfer "gestartet" werden. Wenn die Aufforderung kommt einfach "n" für "Transfer nicht starten" und "y" für "Transfer starten" eingeben. (Mit Enter bestätigen.)
Viel Spass..With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
Dankeschön, genau so etwas habe ich als Beispiel gebraucht. Ist schon rellativ einfach gehalten, daß auch ich da halbwegs durchblicken kann.
So etwas hatte ich evt. eh vor mit einer Abfrage ob man die Datei annehmen will, aber habe ein paar schwierigkeiten gehabt einige Probleme zu Lösen. Ich habe es z.B: nur geschafft Textdatei zu senden und zu Empfangen, bei anderen Dateien Funktioniert es komischerweise nicht. Die Datei ist zu klein und er überträgt auch nur ganz langsam. Ich werde gleich mal den Datei Sende rund Empfänger von deinm Programm einbauen, damit habe ich bestimmt mehr Erfolg.
Grüße und Danke nochmals!Geändert von Fridulin (28.06.05 um 19:34 Uhr)
-
Hallöle,
ist zwar nen alter Thread, nur brauche ich genau das selbe wie der Threadersteller...
Habe erst vor kurzem angefangen C# zu lernen und schon einige kleine DOS Applikationen geschrieben, nur komm ich gerade nicht weiter....
und zwar, wollte ich das Programm von Alexander (dass er in diesem Thread geposted hat) so umschreiben, dass es 2 Dateien auf der Festplatte sucht, findet und an eine bestimmte IP sendet....
Nunja, daran haperts... ich habe es ja nichtmal geschafft 2 fixe Dateien zu senden... nach der Übertragung der ersten Datei, stürzt das Programm einfach ab
Und wie ich das mit dem Durchsuchen der Festplatte anstellen soll, weiss ich leider auch nicht...
Waere nett, wenn mir jemand helfen könnte...
Mein Versuch das Programm umzuschreiben:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Reflection; using System.Threading; using System.Text; namespace furred.Tutsde.FileTransfer { /// <summary> /// Zusammenfassung für Class1. /// </summary> class startup { /// <summary> /// Der Haupteinstiegspunkt für die Anwendung. /// </summary> [STAThread] static void Main(string[] args) { Console.Write("Pfad> "); string path = @"C:\test1.exe"; string path2 = @"C:\test2.exe"; if(!File.Exists(path)) { Console.WriteLine("404"); return; } if (!File.Exists(path2)) { Console.WriteLine("404"); return; } TcpClient client = new TcpClient(); client.Connect("192.168.168.169", 5990); NetworkStream stream = client.GetStream(); sendMsg(stream, "FILE " + Path.GetFileName(path)); string msg = readMsg(stream); string accept_msg = "OK " + Path.GetFileName(path); sendMsg(stream, "FILE " + Path.GetFileName(path2)); string msg = readMsg(stream); string accept_msg = "OK " + Path.GetFileName(path2); Console.WriteLine("GOT '{0}' - Hoping for '{1}'", msg, accept_msg); if (msg.Equals(accept_msg)) { FileStream fstream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); FileStream fstream = File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); long s_length = fstream.Length; long s_read = 0; using (BinaryReader reader = new BinaryReader(fstream)) { while (s_length > s_read) { byte[] buffer = new byte[1024]; int read = reader.Read(buffer, 0, 1024); s_read += read; sendBuffer(stream, buffer, read); int pc = (int) ((((double)s_read) / ((double)s_length)) * 100); if (pc % 5 == 0) Console.WriteLine("{0:000.0}% gesendet..", pc); } } stream.Flush(); Console.WriteLine("Successfully Sent! - Press [enter] to exit.."); } else Console.WriteLine("File not accepted by peer.."); stream.Close(); client.Close(); Console.WriteLine("Press [enter] to exit.."); Console.ReadLine(); } private static string readMsg(NetworkStream stream) { Encoding enc = Encoding.UTF8; byte[] buffer = new byte[1024]; int read = stream.Read(buffer, 0, 1024); string msg = enc.GetString(buffer, 0, read); return msg.Trim(new char[] { '\r', '\n' }); } private static void sendMsg(NetworkStream stream, string msg) { Encoding enc = Encoding.UTF8; byte[] buffer = enc.GetBytes(msg + "\r\n"); sendBuffer(stream, buffer, buffer.Length); } private static void sendBuffer(NetworkStream stream, byte[] buffer, int size) { stream.Write(buffer, 0, size); } } }
Ähnliche Themen
-
Einem PHP-Skript auf einem XAMPP Schreibzugriff auf eine Datei gestatten
Von WiZdooM im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 23.10.09, 12:42 -
über VB eine Datei auslesen und das nicht in einem MS Programm
Von esilein im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 13.11.08, 13:51 -
C#: Datei einem Programm zuweisen
Von MrDisaster im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 15.06.07, 17:20 -
von einem java Programm auf eine .jar datei zugreifen
Von Paddelente im Forum JavaAntworten: 12Letzter Beitrag: 22.04.07, 09:03 -
Wie verknüpft windows eine Datei mit einem Programm
Von Meex im Forum C/C++Antworten: 4Letzter Beitrag: 21.03.05, 11:08





Zitieren

Login





