Naja hab in der Ganzen Zeit nun zum dritten mal meinen schönen TCP Code komplett umgecodet(gut sie waren nie sehr lang aber naja...^^)
Im moment arbeite ich eigentlich nur am Server was mir aber auch schon Schwierigkeiten bereitet...
Es ist so aufgebaut:
Es existiert ein Mainserver, welcher als einzigster nach ausen hin geöffnet wird.
Dazu gibt es dann mehrere Wing-server welche sozusagen als Funktionsserver dienen.
Zum anfang habe ich es mit dem Hauptserver+1. Wingserver probiert.
Ein Shutdown Server mit 2 einfachen befehelen...
Hier mal mein Code:
Main:
Spoiler anzeigen
#include<date.au3>
TCPStartup()
$gui=GUICreate("Server is loading...",200,100)
$komischeskeineahnungwas=GUICtrlCreateProgress(1,1,199,49)
$Label=GUICtrlCreateLabel("Loading Includes...",1,50)
Guisetstate()
$xx=0
$Timerdifftyp=1
$datafurset="Loading Includes..."
While 1
GUICtrlSetData($komischeskeineahnungwas,$xx)
Guictrlsetdata($Label,$datafurset)
If GUIGetMsg()=-3 then Exit
If $xx=0 Then
#include<inc_consends.au3>
$datafurset="Startup intern Servers..."
EndIf
If $xx=10 Then
$Funcsocket=TCPListen("127.0.0.1",00001)
$Paramsocket=TCPListen("127.0.0.1",00002)
$PWsocket=TCPListen("127.0.0.1",00003)
$datafurset="Start Accept for the Servers..."
EndIf
If $xx=20 Then
$acc=TCPAccept($Funcsocket)
$Paramsocke=TCPAccept($Paramsocket)
$PWSocke=TCPAccept($PWsocket)
$datafurset="Run Other Server..."
EndIf
If $xx=30 Then
Run("Shutdown-Server.exe")
$datafurset="Connect To Other Servers..."
EndIf
If $xx=40 Then
$Shutdownserver=TCPConnect("127.0.0.1",26537)
If $Shutdownserver=-1 Then
MsgBox(0,"Can´t Connect to Shutdown Server","")
Exit
EndIf
$datafurset="Load..."
EndIf
If $xx=100 Then
GUIDelete($gui)
ExitLoop
EndIf
$xx=$xx+10
WEnd
$Gui2=GUICreate("Log",300,200)
$Funcinput=GUICtrlCreateInput("Enter your Function",1,1,149,49)
$Paraminput=GUICtrlCreateInput("Param",1,50,149,49)
$Buttom_normal=GUICtrlCreateButton("Run normal Command",150,1,149,49)
$Buttom_spezial=GUICtrlCreateButton("Run spezial Command",150,50,149,49)
$edit_log=GUICtrlCreateEdit("",1,100,299,99)
GUISetState()
While 1
$Timer1=Timerinit()
While $Timerdifftyp=1
$Func=TCPRecv($acc,50)
$param=TCPRecv($paramsocke,50)
$ID_PW=TCPRecv($PWsocke,50)
$Msg=GUIGetMsg($Gui2)
If $Msg=$Buttom_normal Then
$Func=GUICtrlRead($Funcinput)
$param=GUICtrlRead($paraminput)
EndIf
If $msg = -3 then Tcpsend($Shutdownserver,"all")
If $msg = $Buttom_spezial then
$Func_spezial=GUICtrlRead($Funcinput)
$Param_spezial=GUICtrlRead($Paraminput)
#include<spezial.au3>
EndIf
If $Func = "Shutdown" then _shutdown()
$Reaktionszeit=TimerDiff($Timer1)
If $Reaktionszeit >= 20000 then $Timerdifftyp=0
WEnd
GUICtrlSetData($edit_log,Fileread("log.txt"))
FileWrite("log.txt",_nowtime()&@CRLF)
$Timerdifftyp=1
WEnd
Shutdown:
Spoiler anzeigen
TCPStartup()
$LShutServer=TCPListen("127.0.0.1",26537)
$Accept=TCPAccept($LShutServer)
While 1
$recv=TCPRecv($accept,2046)
If $recv="-h" then Shutdown(1)
If $recv="all" Then
ProcessClose("Server.exe")
Exit
EndIf
WEnd
Spezial.au3(besondere Adminbefehle)
If $Func_spezial="Clear_log" then FileDelete("log.txt")
If $Func_spezial="Exit" then Exit
Und ein Funktionsinclude wo noch nachweist wieviele rechte man hat.
Func _shutdown()
If FileExists("1"&$ID_PW&".txt") Then
TCPSend($Shutdownserver,$param)
FileWrite("Config.txt",_NowDate & $ID_PW & $Func & $Param)
EndIf
EndFunc
Problem der Wing bekommt keine Befehle vom Hauptserver...
naja... schonmal thx fürs helfen *prob net finden kann*