Datei über TCP (Byte[]) senden??? [Erledigt]
-
ich hatte schon lange keine Frage mehr gestellt aber nun ist es mal wieder soweit.
Ich will eine Datei per TCP übertragen.
Ich hab einen TCPServer und einen TCP listener. Normale Textbasierende abfragen gehen auch wunderbar. Aber wie mach ich das wenn ich eine ganze datei an den client senden will weiss ich nicht wie ich Vorgehen muss?
Mein Lösungsansatz wäre die Datei in einen Memorystream zu packen und daraus dann ein Byte Array zu machen.
Habt Ihr andere Vorschläge, Lösungen oder Hilfestellungen?
Tadelt mich bitte wenn ich absolut falsch liege.
Grüsse denjo303
-
Verstehe die Frage nicht.
Also ich bin nicht sicher, weils einfach zu einfach ist.Puffer anlegen (byte[] mit 64kb oder sowas), und dann mit http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx reinlesen und mit http://msdn.microsoft.com/en-us/library/f3kd48xs.aspx aufm Socket rausschicken.
Oder GANZ einfach mit http://msdn.microsoft.com/en-us/library/sx0a40c2.aspx
-
oh, Socket.Sendfile kannte ich garnicht... danke... werde ich nachher mal testen
-
SendFile ist nicht so gut, denn davon können nur 2 Aufrufe gleichzeitig stattfinden auf Nicht-Serverversionen von Windows.
-
sendfile-hasser schrieb:
SendFile ist nicht so gut, denn davon können nur 2 Aufrufe gleichzeitig stattfinden auf Nicht-Serverversionen von Windows.
Quelle?
EDIT: OK, habs selbst gefunden.
SendFile verwendet anscheinend TransmitFile.
http://stackoverflow.com/questions/14608508/c-sharp-async-socket-beginsendfile-only-sends-two-files-async
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740565(v=vs.85).aspx
So ein Scheiss ein blöder aber auch.Danke für den Hinweis.
-
ich habs jetzt in ein byte array gepackt und über den networkstream(größe, daten) gemacht... war wie mir schon erwähnt sehr einfach... meine denkweise geht immer nur zu viele wege...
danke an alle!!!
:p