ich habe mir mal eine eigene Socketklasse geschrieben, da die methoden send und recv überschrieben, und dann jeweils einen Server und einen Client abgeleitet, in etwa so:
Code: Alles auswählen
import socket
class MySocket:
def __init__(self):
self.sock = # tcp socket erstellen
def __del__(self):
self.sock.close()
def send(self, msg):
# daten in einer schleife versenden
def recv(self):
# daten empfangen
class MyServer(MySocket):
def __init__(self, host="localhost", port=1234):
# self.sock (MySocket) methoden bind, listen, accept aufrufen
class MyClient(MySocket):
# connected und sendet daten an den server (anderes modul)
Ein anderes Problem, das mir noch aufgefallen ist: MySocket.__del__ kann ja nicht aufgerufen werden, wenn ich die konsole gewaltsam beendet wird (windows cmd -> Schließen [X] oder so). hab gelesen, dass ein close-Aufruf schon drin sein sollte, da der Socket auf der anderen Seite sonst hängen bleiben könnte oder ähnliches. gibts da nen trick wie ich den socket doch noch zumachen kann?
Vielen Dank für eure Bemühungen schonmal im Voraus