Hallo nochmal ich habe versucht mein Beispiel auf meins zu übertragen aber es funktionierte nicht ganz so wie es sollte daher habe ich es wieder zurückgesetzt. Daher habe ich mein Script hier mal aufgeschrieben und wollte fragen wie es in meinem Fall sein muss. Ich hatte versucht es mit Client ID´s zu probieren aber so funktioniert es auch nicht hoffentlich könnt ihr mir hier helfen. Danke
PHP Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
#include <mysql.au3>
#include <md5.au3>
#include "Packets.au3"
Global $Resv,$sResv,$true = "0",$false = "0",$ban = "0",$Verbindung,$Edit1,$sSocket,$x = 0,$ID = 0
$MaxConnect = 3
Global $Verbindung[$MaxConnect]
TCPStartup()
$name = TCPNameToIP("")
$Socket = TCPListen($name, 7294, $MaxConnect)
If @error Then
MsgBox(0,"ERROR","[Server] Fehler beim erstellen des Sockets")
Sleep(2500)
Exit
EndIf
If Not FileExists(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt") Then
DirCreate(@ScriptDir&"\log")
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","")
EndIf
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Start Server")
Opt("GUIOnEventMode",1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Auth Server Konsole", 536, 320, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 529, 313, BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
Dim $Verbindung[$MaxConnect]
For $x = 0 To UBound($Verbindung) - 1
$Verbindung[$x] = -1
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Server IP Adresse: "&$name)
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Server IP Adresse: "&$name&@CRLF)
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Ready for Connections!")
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Ready for Connections!"&@CRLF)
While 1
_Check_Packets()
Sleep(250)
WEnd
Func _Check_Packets()
For $x = 0 To UBound($Verbindung) - 1
If $Verbindung[$x] = -1 Then
$Verbindung[$x] = TCPAccept($Socket)
EndIf
If $Verbindung[$x] <> -1 Then
$Resv = TCPRecv($Verbindung[$x], 2048)
If @error Then
TCPCloseSocket($Verbindung[$x])
$Verbindung[$x] = -1
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] @error Flag/Client disconnected")
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] @error Flag/Client disconnected"&@CRLF)
EndIf
$sResv = StringSplit($Resv,"|")
If $Resv <> "" Then
If StringInStr($Resv,$Connected_Req) And $sResv[1] == $Connected_Req Then
_Handle_Connected_Client_Req()
ElseIf $Resv = $Disconnected_Client_Req Then
_Handle_Disconnect_Client_Req()
ElseIf StringInStr($Resv,$Login_Req) And $sResv[1] == $Login_Req Then
_Handle_Login_Req()
EndIf
EndIf
EndIf
Next
EndFunc
Func _setdata($String)
Global $DataString
$DataString = $DataString&$String&@CRLF
GUICtrlSetData($Edit1,$DataString)
_GUICtrlEdit_LineScroll($Edit1, 0, _GUICtrlEdit_GetLineCount($Edit1))
EndFunc
Func _Exit()
For $y = 0 To UBound($Verbindung) - 1
If $Verbindung[$y] <> -1 Then
TCPSend($Verbindung[$y],$Shutdown_Server_Ack)
TCPCloseSocket($Verbindung[$y])
EndIf
Next
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Shutdown Server"&@CRLF)
Exit
EndFunc
Func _Handle_Login_Req()
$Username = "root"
$password = ""
$Database = "project coventry auth"
$Server = "localhost"
$_Mysql_Connect = _MySQLConnect($Username,$password,$Database,$Server)
$_mysql_Username = _GetColVals($_Mysql_Connect,"accounts","Username")
$_mysql_Password = _GetColVals($_Mysql_Connect,"accounts","Password")
$_mysql_Banned = _GetColVals($_Mysql_Connect, "accounts", "Banned")
For $numbers = 1 To $_mysql_Username[0]
If $sResv[2] == $_mysql_Username[$numbers] And $sResv[3] == $_mysql_Password[$numbers] Then
$true =+ "1"
Else
$false =+ "1"
EndIf
Next
For $banned = 1 To $_mysql_Username[0]
If $_mysql_Banned[$banned] == "0" And $sResv[2] == $_mysql_Username[$banned] Then
$ban =+ "0"
ElseIf $_mysql_Banned[$banned] == "1" And $sResv[2] == $_mysql_Username[$banned] Then
$ban =+ "1"
EndIf
Next
If $true == "1" And $ban == "0" Then
For $x = 0 To UBound($Verbindung) - 1
If $Verbindung[$x] <> -1 Then
TCPSend($Verbindung[$x],$Login_Ack_Succed)
ExitLoop
EndIf
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Login succed. User: "&$sResv[2])
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Login succed. User: "&$sResv[2]&@CRLF)
$true = "0"
$false = "0"
$ban = "0"
ElseIf $false >= "1" And $ban == "0" Then
For $x = 0 To UBound($Verbindung) - 1
If $Verbindung[$x] <> -1 Then
TCPSend($Verbindung[$x],$Login_Ack_Failed)
ExitLoop
EndIf
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Login error... non exist account or false ID or PW. User: "&$sResv[2])
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Login error... non exist account or false ID or PW. User: "&$sResv[2]&@CRLF)
$true = "0"
$false = "0"
$ban = "0"
ElseIf $ban >= "1" Then
For $x = 0 To UBound($Verbindung) - 1
If $Verbindung[$x] <> -1 Then
TCPSend($Verbindung[$x],$Login_Ack_Banned)
ExitLoop
EndIf
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Login failure cause banned account. User: "&$sResv[2])
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Login failure cause banned account. User: "&$sResv[2]&@CRLF)
$true = "0"
$false = "0"
$ban = "0"
Else
For $x = 0 To UBound($Verbindung) - 1
If $Verbindung[$x] <> -1 Then
TCPSend($Verbindung[$x],$Login_Ack_Req_Failed)
ExitLoop
EndIf
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Login Req failed. User: "&$sResv[2])
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Login Req failed. User: "&$sResv[2]&@CRLF)
$true = "0"
$false = "0"
$ban = "0"
EndIf
_MySQLEnd($_Mysql_Connect)
EndFunc
Func _Handle_Disconnect_Client_Req()
For $x = 0 To UBound($Verbindung) - 1
TCPSend($Verbindung[$x],$Disconnected_Client_Ack)
TCPCloseSocket($Verbindung[$x])
$Verbindung[$x] = -1
Next
If $sResv[1] == "1" Then
$ID = $sResv[1] - "1"
ElseIf $sResv[1] == "2" Then
$ID = $sResv[1] - "1"
ElseIf $sResv[1] == "3" Then
$ID = $sResv[1] - "1"
EndIf
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Client Disconnected. Client ID: "&$ID)
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Client Disconnected. Client ID: "&$ID&@CRLF)
EndFunc
Func _Handle_Connected_Client_Req()
$ID = $ID + "1"
For $x = 0 To UBound($Verbindung) - 1
TCPSend($Verbindung[$x],$Connected_Ack&"|"&$ID)
Next
_setdata("["&@MDAY&"."&@MON&"."&@YEAR&"] ["&@HOUR&":"&@MIN&"] | "&"[Log] Client Connected. Client ID: "&$ID&" Computername: "&$sResv[2])
FileWrite(@ScriptDir&"\log\"&@MDAY&"_"&@MON&"_"&@YEAR&"_log.txt","["&@HOUR&":"&@MIN&"] [Log] Client Connected. Client ID: "&$ID&" Computername: "&$sResv[2]&@CRLF)
EndFunc