Hallo,
wie sendet man eine beliebige Datei (z.B. ein .jpg oder eine .mp4) per TCP? Ich habe schon versucht die Binärcode der Dateien zu senden, aber das funktioniert genau so wenig wie den einfachen FielRead der Dateien zu versenden.
Schonmal Danke
TCP Datei senden
-
GreenHornBaldi -
23. Januar 2016 um 11:54 -
Erledigt
-
-
Sende die Daten binär und empfange sie binär. Ich mache das ungefähr so.
Das ganze ist aus meinem Projekt rausgerissen also wunder dich nicht wenn nicht alles so schlüssig ist (hab einige Teile gelöscht).AutoIt$hFileOpen = FileOpen("datei.exe", 16) ;16 für binäres Lesen Do $sData = FileRead($hFileOpen, $iBuffersize) $iRead = @extended $iCount += $iRead ;$iCount beinhaltet bereits gelesene Bytes TCPSend($hClient, $sData) Until Not $iRead
und zum empfangen verwende ichAutoIt
Alles anzeigen$hFileOpen = FileOpen("datei.exe", 18) ;18 für binäres Lesen mit Schreibrechten $sData = "" Do $sData &= TCPRecv($hAcceptedClient, $iBuffersize, 1) ;1 für binäres auslesen If $sData <> "" Then FileWrite($hFileOpen, $sData) $iCount += StringLen($sData) / 2 - 1 (binär ist immer 1B als 2 chars dargestellt und mit dem 0x vorne muss es noch -1 sein) $sData = "" EndIf Until $iCount = $__currentSize ;in meinem Dateiprotokoll schicke ich sie in einem bestimmten Format wo ;Dateigröße, relativer Pfad etc mitgesendet werden. $__currentSize wurde also vom Sender geschickt.
-
Das funktioniert bei mir noch nicht mal ohne TCP verbindung... @alpines
-
-
FileOpen returnt nur ein Handle zu der offenen Datei mit bestimmten Einstellungen. Auslesen musst du sie immer noch von selbst.