Hi
ich hab hier ein simplen Code (siehe unten). Ich habe einen TCP Code geschrieben wo die Datei gesendet wird. Die Datei wird empfangen. Und zwar hab ich eine kleine Videodatei ca 28mb als Testdatei genommen. Wenn sie geschickt wird kann man sie auch anschauen.
Mein Problem ist aber, ich möchte gerne, der das sendet (zur Zeit Client) die restlichen bytes (später in Kbytes) sehen kann bzw auch später Regeln kann.
Nun ja, die do until schleife läuft ganze Zeit
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
HotKeySet("{q}", "_exit")
func _exit()
Exit
EndFunc
Global $FileSendSizeLeft = 0, $TCPSendedBytes = 0
[/autoit] [autoit][/autoit] [autoit]TCPStartup()
$TCPConnect = TCPConnect(@IPAddress1, 23322)
if($TCPConnect < 1) Then
ConsoleWrite("Verbunden fehlgeschlagen" & @CRLF)
exit
Else
ConsoleWrite("Verbunden. Sende Datei" & @CRLF)
EndIf
$sFile = "C:\Users\Nickname\Documents\AutoIT Scripte\Filesender\video.flv"
$FileOpenBinary = FileOpen($sFile,16)
$FileRead = FileRead($FileOpenBinary)
$FileSendSizeLeft = BinaryLen($FileRead)
do
$TCPSendedBytes = TCPSend($TCPConnect, $FileRead)
ConsoleWrite("Gesendete Bytes: " & $TCPSendedBytes & @CRLF)
$FileSendSizeLeft = ($FileSendSizeLeft-$TCPSendedBytes)
ConsoleWrite("Noch übriggebliebene Bytes: " & $FileSendSizeLeft & @CRLF)
sleep(100)
Until $FileSendSizeLeft <= 0
exit
Ich bekomme als Meldung das hier:
ZitatVerbunden. Sende Datei
Gesendete Bytes: 29583166
Noch übriggebliebene Bytes: 0
Total komisch. Wenn ich jetzt auskommentiere würde die Schleife nicht beendet werden. Die Datei wird dann weiter gesendet aber die Meldung wäre dann auch die gleiche Bytes die genoch übrig geblieben sind. Eigentlich müsste ja doch zurückgegeben werden wieviel er tatsächlich er gesendet hat und nicht muss oder? Das kann ich ja so oder so mit binarylen lesen.
server ist nur einfach
[autoit]Do
$TCPRecv = TCPRecv($TCPAccept,1024)
If @error Then ExitLoop
FileWrite("test.flv",$TCPRecv)
sleep(10)
Until @error
ConsoleWrite("Verbindung beendet" & @CRLF)
exit
EDIT: Achja, das sind 2 verschiedene Scripts natürlich. Also die Codes sind nicht auf der selben .au3 Datei.