Erste Schritte EventGhost und Client/Server Socket. Wer kann Anfänger helfen?

Hallo zusammen,
hat jemand Kombination aus Eventghost und dem Client/Server Socket am laufen oder kann mir hier weiterhelfen?
Grundsätzlich sollte es ja kein Problem sein über den Netzwerk Ereignis Sender/Empfänger und dem Client/Server Socket von Ips Daten auszutauschen. Ist es aber wenn man keine Ahnung hat. :confused:
Wobei die Probleme die einem einfachen Datenaustausch im Wege stehen meiner Meinung nach auf der Seite von Eventghost stehen.
Wenn ich das richtig verstanden habe, muss der „Server“ erst mal mit einem Schlüsselwort „aufgeweckt“ werden (quintessence in diesem Fall) um dann einen Cookie zurückzusenden und wieder eine Antwort zu erhalten und die Daten zu empfangen. So stehts ja auch alles in der Doku. Denke das ist der passende Teil im Code:


    def Send(self, eventString, payload=None):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #self.socket = sock
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        sock.settimeout(2.0)
        try:
            sock.connect((self.host, self.port))
            sock.settimeout(1.0)
            # First wake up the server, for security reasons it does not
            # respond by it self it needs this string, why this odd word ?
            # well if someone is scanning ports "connect" would be very 
            # obvious this one you'd never guess :-) 

            sock.sendall("quintessence
\r")

            # The server now returns a cookie, the protocol works like the
            # APOP protocol. The server gives you a cookie you add :<password>
            # calculate the md5 digest out of this and send it back
            # if the digests match you are in.
            # We do this so that no one can listen in on our password exchange
            # much safer then plain text.

            cookie = sock.recv(128)		

            # Trim all enters and whitespaces off
            cookie = cookie.strip()

            # Combine the token <cookie>:<password>
            token = cookie + ":" + self.password

            # Calculate the digest
            digest = md5(token).hexdigest()

            # add the enters
            digest = digest + "
"
                    
            # Send it to the server		
            sock.sendall(digest)

            # Get the answer
            answer = sock.recv(512)

            # If the password was correct and you are allowed to connect
            # to the server, you'll get "accept"
            if (answer.strip() != "accept"):
                sock.close()
                return False

            # now just pipe those commands to the server
            if (payload is not None) and (len(payload) > 0):
                for pld in payload:
                    sock.sendall(
                        "payload %s
" % pld.encode(eg.systemEncoding)
                    )

            sock.sendall("payload withoutRelease
")
            sock.sendall(eventString.encode(eg.systemEncoding) + "
")

            return sock
        
        except:
            if eg.debugLevel:
                eg.PrintTraceback()
            sock.close()
            self.PrintError("NetworkSender failed")
            return None


    def MapUp(self, sock):
        # tell the server that we are done nicely.
        sock.sendall("close
")
        sock.close()

Leider habe ich aber keinerlei Programmierkenntisse und deshalb stellt mich das vor unlösbare Probleme. Durch die vielen hilfreichen Beiträge im Forum reichts bei mir für Licht an und aus und ein paar einfache logische Verknüpfungen aber hier hörts mit anlesen leider auf. Man kann sich zwar vieles oder alles ergoogeln aber ohne Grundkenntnisse ist es schwierig die richtigen Anhaltspunkte zu finden.
Im Anhang noch die Dateien von EventGhost, Netzwerk Ereignis Sender und Empfänger falls es noch wichtig ist wobei der obige Code aus dem Sender ist.

grüße
goran

Empfänger.txt (8.28 KB)

Sender.txt (6.34 KB)