hay hay,
beim erstellen eines server <-> client Scripts sind mir mindestens ein fehler unterlaufen
Edit:
Client script auf switch umgeschrieben leider empängt er den namen jetzt in der hauptschleife und nicht in der schleife wo er sie braucht
Server:funktion GETFileList zeigt erst beim zweiten klicken die liste manchmal auch beim ersten Edit: Erledigt
funktion GETFile empfängt nicht da der Dateiname beim client nicht ankommt bzw in der falschen schleife
funktion GETFileBig geht im moment gar nicht da sie nich wie GETFileList auf fast anhieb ging
Client:
GetFile func empfängt Dateinamen nicht
im \rar\ Ordner sind 6 Beispiel Dateien eine ~ 50mb und 5x ~ 10 bis 150 kb
Server:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Opt("GUIDataSeparatorChar", "|")
Opt('MustDeclareVars', 1)
#region ### START Koda GUI section ### Form=d:\users\eisregen\desktop\autoit scripts\rar archive\neuer ordner\datei senden\server.kxf
Global $Form1 = GUICreate("Server GUI", 377, 223, 342, 291)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
Global $recvfile = GUICtrlCreateList("", 0, 8, 137, 201)
GUICtrlSetLimit(-1, 200) ; to limit horizontal scrolling
Global $Button1 = GUICtrlCreateButton("Get Big", 155, 96, 75, 25)
GUICtrlSetOnEvent(-1, "GETFileBig")
Global $Button2 = GUICtrlCreateButton("Get File", 155, 136, 75, 25)
GUICtrlSetOnEvent(-1, "GETFile")
Global $Button3 = GUICtrlCreateButton("Del File", 155, 184, 75, 25)
;~ GUICtrlSetOnEvent(-1, "Button3Click")
Global $Button4 = GUICtrlCreateButton("Start Server", 155, 11, 75, 25)
GUICtrlSetOnEvent(-1, "StartServer")
Global $Button5 = GUICtrlCreateButton("Get File List", 155, 56, 75, 25)
GUICtrlSetOnEvent(-1, "GETFileList")
Global $RecvBig = GUICtrlCreateList("", 248, 8, 121, 201)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
StartServer()
While 1
Sleep(100)
WEnd
Func StartServer()
TCPStartup()
Global $IP = InputBox("IP", "Bitte Server IP eingeben.", "127.0.0.1")
Global $Connection = TCPConnect($IP, 4412)
If $Connection < 0 Then
MsgBox(16, "Error", "Konnte keine Verbindung herstellen!")
_Exit()
EndIf
EndFunc ;==>StartServer
Func GETFileBig()
;~ GETFileList()
TCPSend($Connection, "FileBig")
While 1
Local $Resv = TCPRecv($Connection, 8192)
If @error Then
MsgBox(16, "Error", "Verbindung unterbrochen!")
ExitLoop
EndIf
Sleep('500')
;~ GUICtrlSetData($RecvBig, "")
GUICtrlSetData($RecvBig, $Resv)
ConsoleWrite($Resv)
ExitLoop
WEnd
EndFunc ;==>GETFileBig
Func GETFile()
Local $Resvgetfile = -1
TCPSend($Connection, "GetFile")
Local $filetoget = GUICtrlRead($recvfile)
Sleep('500')
TCPSend($Connection, $filetoget)
Do
Local $Resvgetfile = TCPRecv($Connection, 8192)
Until $Resvgetfile <> -1
ConsoleWrite($Resvgetfile)
If $Resvgetfile = "GO" Then
ConsoleWrite('resv file')
While 1
Local $Resvgetfile = TCPRecv($Connection, 8192, 1)
If @error Then
FileWrite(@ScriptDir & "\get\" & GUICtrlRead($recvfile), $Resvgetfile)
MsgBox(16, "Error", "Verbindung unterbrochen!")
ExitLoop
EndIf
FileWrite(@ScriptDir & "\get\" & GUICtrlRead($recvfile), $Resvgetfile)
ExitLoop
WEnd
EndIf
EndFunc ;==>GETFile
Func GETFileList()
TCPSend($Connection, "List")
While 1
Local $Resv = TCPRecv($Connection, 8192)
If @error Then
MsgBox(16, "Error", "Verbindung unterbrochen!")
ExitLoop
EndIf
Sleep('100')
GUICtrlSetData($recvfile, "")
GUICtrlSetData($recvfile, $Resv)
ExitLoop
;~ ConsoleWrite($Resv)
WEnd
EndFunc ;==>GETFileList
Func Form1Close()
_Exit()
EndFunc ;==>Form1Close
Func RecvBigClick()
GUICtrlSetData($recvfile, "Item1|Item2|Item3|Item4|Item5")
EndFunc ;==>RecvBigClick
Func recvfileClick()
EndFunc ;==>recvfileClick
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
Local $Resv = TCPRecv($Connection, 8192)
If @error Then
MsgBox(16, "Error", "Verbindung unterbrochen!")
_Exit()
EndIf
If $Resv = "SF" Then
While 1
$Resv = TCPRecv($Connection, 8192, 1)
If @error Then
FileWrite("Datei.exe", $Resv)
MsgBox(16, "Error", "Verbindung unterbrochen!")
ExitLoop
EndIf
;~ FileWrite("Datei.exe", $Resv)
WEnd
EndIf
WEnd
Func _Exit()
TCPShutdown()
Exit
EndFunc ;==>_Exit
Client V2 :
Spoiler anzeigen
#include<Array.au3>
#include<File.au3>
;~ #RequireAdmin
Opt('MustDeclareVars', 1)
Global $IP = "127.0.0.1"
Global $FileBig = ""
_verbindung()
[/autoit] [autoit][/autoit] [autoit]Func _verbindung()
TCPStartup()
Global $Socket = TCPListen($IP, 4412, 1)
Do
Global $Connection = TCPAccept($Socket)
Until $Connection <> -1
EndFunc ;==>_verbindung
While 1
Local $Resv = TCPRecv($Connection, 8192)
Switch $Resv
Case "end"
_restart()
Case "FileBig"
_FileBig()
Case "GetFile"
_GetFile()
Case "List"
_List()
Case Else
_debug()
EndSwitch
WEnd
Func _restart()
TCPShutdown()
ConsoleWrite("TCP Restart")
Sleep('1000')
;~ _verbindung()
Exit
EndFunc ;==>_restart
Func _debug()
ConsoleWrite($Resv)
EndFunc ;==>_debug
Func _List()
Local $FileList = _FileListToArray(@ScriptDir & "\rar\", "*", 1)
_ArrayDelete($FileList, 0)
Local $FileListString = _ArrayToString($FileList, "|")
TCPSend($Connection, $FileListString)
EndFunc ;==>_List
Func _FileBig()
Local $FileList = _FileListToArray(@ScriptDir & "\rar\", "*", 1)
_ArrayDelete($FileList, 0)
For $i = 0 To UBound($FileList) - 1
$FileBig &= FileGetSize(@ScriptDir & "\rar\" & $FileList[$i])
$FileBig = $FileBig & "|"
Next
;~ $FileListString = _ArrayToString($File, "|")
TCPSend($Connection, $FileBig)
ConsoleWrite($FileBig)
EndFunc ;==>_FileBig
Func _GetFile()
Local $Resvname = -1
Do
$Resvname = TCPRecv($Connection, 8192,0)
Until $Resvname <> -1
Sleep('100')
TCPSend($Connection, "GO")
Sleep('500')
Local $File = FileOpen(@ScriptDir & "\rar\" & $Resvname, 16)
If $File = -1 Then
EndIf
While 1
Local $Read = FileRead($File, 2048)
If @error Then
FileClose($File)
ExitLoop
EndIf
TCPSend($Connection, $Read)
If @error Then
FileClose($File)
ExitLoop
EndIf
WEnd
EndFunc ;==>_GetFile
;~ While 1
;~ TCPSend($Connection, "SF")
;~ While 1
;~ $Read = FileRead($File, 2048)
;~ If @error Then
;~ FileClose($File)
;~ Exit
;~ EndIf
;~ TCPSend($Connection, $Read)
;~ If @error Then Exit
;~ WEnd
;~ WEnd
Neue GETFileList() Func:
Spoiler anzeigen
Func GETFileList()
TCPSend($Connection, "List")
Local $Resvlist = -1
While 1
Do
Local $Resvlist = TCPRecv($Connection, 8192)
Until $Resvlist <> -1
If @error Then
MsgBox(16, "Error", "Verbindung unterbrochen!")
ExitLoop
EndIf
Sleep('100')
GUICtrlSetData($recvfile, "")
GUICtrlSetData($recvfile, $Resvlist)
ExitLoop
;~ ConsoleWrite($Resv)
WEnd
EndFunc ;==>GETFileList
meine Autoit Kenntnisse sind naja so ok
bin aber auch für hinweise die mich zum Fehler führen dankbar damit ich selbst nen bissl gefordert bin
im client und server die letzten beiden while schleifen sind das grundgerüst vomit ich angefangen hab, thx an tja an wehn weiß nima habs auf googl gefunden aber danke
dann noch ne gute nacht oder morgen je nachdem
Gruß Eisregen