Hallo,
ich habe ein Script geschrienen in dem ich mit TCP Verbindungen Arbeite,
Spoiler anzeigen
TCPStartup()
If @error Then Exit
$MainSocket = TCPListen($szIPADDRESS, $nPORT, 255)
If $MainSocket = -1 Then Exit
Nun möchte ich nicht mit einer Schleife jede einzelne Connection bearbeiten sonder alle nahezu gleichzeitig.
Dazu habe ich erst mal _Timer_SetTimer($hGUI, 100, "_LookConnect") Verwendet und die Funktion _LookConnect aufgerufen
Spoiler anzeigen
Func _LookConnect($hWnd, $Msg, $iIDTimer, $dwTime)
#forceref $hWnd, $Msg, $iIDTimer, $dwTime
Local $ConnectedSocket = -1
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket > 0 Then
_connected($ConnectedSocket)
EndIf
EndFunc ;==>_LookConnect
Wenn die Funktion eine Verbindung findet wird die Funktion für die Verbindung gestartet.
Funktionert auch wunderbar
Aber wenn ich das Script als Dienst starte Funktioniert das nicht mehr.
Ich nehme an das die GUI als Dienst nicht Funktioniert und Somit auch der Timer nicht Funktioniert.
Hat jemand eine Idee?
Ich hatte noch einen anderen Ansatz verfolgt:
ist es möglich einen Event im OS zu Verankern der eine Funktion im Script aufruft wenn er Ausgelöst wird so könnte in _LookConnect geprüft werden ob eine Verbindung besteht und wenn ja wird der Event gefeuert.
mit _WinAPI_CreateEvent und _WinAPI_SetEvent wäre so mein Ansatz aber ich habe das Konstrukt noch nicht so geblickt.
CU Alex