Socket wird nicht als blockierend registriert...?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
tomba
User
Beiträge: 21
Registriert: Montag 14. Dezember 2015, 15:53

Hallo. Ich habe ein Problem. :cry:

Ich probiere ein RAT (ein legales) zu schreiben. Funktionierte alles bestens. (Bin bei Vers. 1.3 (angefangen bei 0.1))
Aber jetzt habe ich einen Fehler:

Ich will 2 Sockets benutzen. Einen für Dateitransfer und einen für Kommando und Antworttransfer. Problem ist: Sobald ich dem Socket den Befehl gebe, Daten zu empfangen kommt: "Ein nicht blockierender Socketvorgang konnte nicht sofort ausgeführt werden". (Als Exception von self.sock.recv(1024)).

Ich hab den eigentlich blockierend, da ich ein Timeout gesetzt habe (3 Sekunden), aber er meint er könnte keinen nicht-blockierenden Socketvorgang ausführen. Aber wieso? Ich meine ich sage ihm ja nicht, dass er das soll :P


(Und alle die mir jetzt kommen: "Zwei Sockets zu nutzen ist dilettantisch", die sollen mir nach Mögl. eine nette Routingfunktion schreiben. Die kriege ich nämlich nicht hin :D)
Science makes you fly to the moon, religion makes you fly into buildings.
tomba
User
Beiträge: 21
Registriert: Montag 14. Dezember 2015, 15:53

Schande über mich!

Habe zwar den Serversocket auf non-blocking gesetzt, rufe die recv Funktion aber mit dem Socket des neu verbundenen Clients auf.
Nun habe ich auf diesen ein Timeout gepackt und es funktioniert einwandfrei!

Danke für's Lesen trotzdem!
Science makes you fly to the moon, religion makes you fly into buildings.
Antworten