Button sendet TCP nachricht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    Ich möchte bez. habe schon ein Gui mit Phyton erstellt, nun möchte ich mit Hilfe der einzelnen Buttons TCP Befehle senden.

    Bis jetzt habe ich die Gui (schlichtes Designe) und versuche zurzeit eine TCP Verbindung aufzubauen.

    Mein Code :

    Zurzeit verweisen alle Buttons auf "schliessen".


    Wenn ich nun mein Python Programm starte kommt:

    Zitat

    Traceback (most recent call last):
    File "C:\Python34\Praesentation.py", line 13, in <module>
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    AttributeError: type object 'socket' has no attribute 'socket'

    Und zwar hier:

    Ready when you are :bravo2:

  • Danke,
    Habe es nun so angepasst:

    Nun habe ich das Problem das der Button klick (praesentation_stop) nicht funktioniert

    Code
    received data:
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python34\lib\tkinter\__init__.py", line 1487, in __call__
        return self.func(*args)
      File "C:\Python34\Praesentation.py", line 25, in praesentation_stop
        s.send(bytes("stop", "utf-8"))
    OSError: [WinError 10038] Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist

    Wie kann ich die Verbindung geöffnet halten bez Daten jederzeit senden?

    Ready when you are :bravo2:

    • Offizieller Beitrag

    dann lass das s.close() weg. Im Moment schliesst er sofort nach dem Hello World. Dann kommt noch dazu, dass er innerhalb der Funktion "s" gar nicht kennt, woher auch. Allso musst du das socket objekt mit übergeben oder innerhalb der funktion nen neuen socket aufmachen. Und bevor jemand globale variablen in den Raum wirft, nein :)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Ich habs jetzt so gelöst,
    warscheindlich gibt es einige verbesserungen:

    Ready when you are :bravo2:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!