socket.listen maximum?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Bob13
User
Beiträge: 29
Registriert: Samstag 23. Mai 2009, 18:13

Hey!
Ich hätte mal eine Frage.
In der python.org socket anleitung auf dieser seite:
http://www.python.org/doc//current/library/socket.html

steht folgendes:
socket.listen(backlog)
Listen for connections made to the socket. The backlog argument specifies the maximum number of queued connections and should be at least 1; the maximum value is system-dependent (usually 5).
Meine Frage:
Wenn man einen socket serverseitige anwendung erstellen will, an der mehr als 5 clienten gleichzeitig laufen, beispielweise einen chat, wie ist das zu lösen?
Oder ist diese Angabe veraltet oder auf den meisten systemen nicht mehr zutreffend?

Gruß
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Bob13 hat geschrieben:Meine Frage:
Wenn man einen socket serverseitige anwendung erstellen will, an der mehr als 5 clienten gleichzeitig laufen, beispielweise einen chat, wie ist das zu lösen?
Oder ist diese Angabe veraltet oder auf den meisten systemen nicht mehr zutreffend?
`backlog` gibt nur an, wie viele Clients in der Warteschlange (Queue) rumsitzen können. In dieser Queue warten alle Clients, die noch nicht per `accept()` "akzeptiert" wurden. Ist die Warteschlange voll, werden keine neuen Clients mehr in die Warteschlange aufgenommen; es können sich also keinen weiteren Clients verbinden, bis wieder ein Platz in der Queue frei ist.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Achso. Wegen der 5. Die ist in der Tat etwas alt. In Linux z.B. ist das Limit 128 (/usr/include/bits/socket.h, SOMAXCON).
Bob13
User
Beiträge: 29
Registriert: Samstag 23. Mai 2009, 18:13

okay!
Dann hab ich das mit dem listen jetzt richtig verstanden!
Ich habe bisher angenommen, dass backlog die zahl der maximalen verbindungen ist...

Dann hat sich das ganze auch schon erledigt.
Antworten