Ich habe ein Problem
und zwar habe ich 2 kleine scripts geschreiben, die für den datenaustausch von Datein sind, allerdings, geht die statusanzeige nicht und bei großen dateien merk er nicht das er schon fertig ist mit Dateisendung ist, obwohl es bei kleinen dateien geht
Veleicht könntet ihr euch das mal angucken
Sender
Do
$IP = InputBox ("IP","Gib die IP ein")
If @error Then Exit
Until $IP <> ""
If Not Ping ($IP) Then Exit MsgBox (16,"Error","Diese IP ist nicht Online")
$File = FileOpenDialog ("Wähle die Datei aus",@DesktopDir,"Alle Dateien (*.*)")
$Name = StringTrimLeft ($File,StringInStr ($File,"\",0,-1))
$Read = FileRead ($File)
TCPStartup ()
$Con = TCPConnect ($IP,80)
IF $Con = -1 Then Exit MsgBox (16,"Error","Konnte keinen Server auf dieser IP finden")
$Size = FileGetSize($File)
TCPSend ($Con,"Datei|"& $Name & "|" & $Size)
Do
$recv = TCPRecv ($Con,2048)
If $recv = "0" Then Exit MsgBox (16,"Error","Der Partner hat die Datei nicht angenommen!")
Sleep (100)
Until $recv = "1"
$SizeOld = $Size
ProgressOn ("Dateiübertragung","Die Datei wird übertragen","0%",Default,Default,18)
While StringLen ($Read)
$x = TCPSend($con, $Read)
MsgBox (0,"","Bla")
If @error Then ExitLoop
$Size -= $x
ProgressSet ($Size / $SizeOld *100,$Size / $SizeOld *100 & "%")
Sleep (100)
$Read = StringTrimLeft($Read, $x)
Do
Sleep (10)
Until TCPRecv ($Con,2048) = "1"
WEnd
TCPSend ($Con,"ENDE")
ProgressOff ()
TCPShutdown ()
MsgBox (64,"Fertig","Die Datei wurde komplett übertragen")
Empfänger
#include <INet.au3>
TCPStartup ()
$TCP = TCPListen (_GetIP(),80)
Do
$Con = TCPAccept ($TCP)
Until $Con <> -1
$Split = StringSplit (_Recv (),"|")
If $Split[1] = "Datei" Then
If MsgBox (1,"Dateisendung","Ihnen wird die Datei " & $Split[2] & " gesendet") = 1 Then
$File = FileSaveDialog ("Wählen sie den Speicherort und Namen",@DesktopDir,"(*." & StringTrimLeft ($Split[2],StringInStr ($Split[2],".",0,-1)) & ")",Default,$Split[2])
TCPSend ($Con,"1")
While 1
$recv = _Recv()
If $recv = "ENDE" Then
Exit MsgBox (64,"Feritg","Die Datei wurde komplett übertragen!")
Else
FileWrite ($File,$recv)
$recv = ""
TCPSend ($Con,"1")
EndIf
Wend
Else
TCPSend ($Con,"0")
EndIf
EndIf
Func _Recv ()
Local $recvf
Do
$recvf = TCPRecv ($Con,1024)
Sleep (10)
Until $recvf <> ""
Return $recvf
EndFunc