Frage

Ich habe versucht, Beispiele über die Socket-Programmierung und kam auf diesem Skript zu finden: http://stacklessexamples.googlecode.com/svn/trunk/examples/ Vernetzung / mud.py

Wenn durch dieses Skript zu lesen fand ich diese Zeile: listenSocket.listen (5)

Wie ich es verstehe - es liest 5 Bytes aus dem Puffer und dann tut Sachen mit ihm ...

aber was ist, wenn mehr als 5 Bytes geschieht mit dem anderen Ende gesendet wurde?

in der anderen Stelle des Skripts überprüft er Eingabe gegen 4 Befehle und sieht, wenn es r \ n in der Kette ist \. nicht Befehle wie "Look" und \ r \ n bildet für mehr als 5 Bytes?

Alan

War es hilfreich?

Lösung

Die folgende ist für Steckdosen im Allgemeinen, aber es sollte über die Verwendung von Sockets aus Python beantwortet Ihre Frage helfen.

socket.listen () wird verwendet für eine Server Buchse für eingehende Verbindungen zu hören.

Der Parameter hört übergeben wird, die Rückstand genannt , und es bedeutet, wie viele Verbindungen sollten die Steckdose übernehmen und in einem ausstehenden Puffer setzen, bis Sie Ihren Anruf () zu übernehmen. Das gilt auch für Verbindungen, die zwischen der Zeit, die Sie genannt zu Ihrem Server-Socket verbinden warten haben hören () und die Zeit, die Sie einen passenden Anruf beendet haben zu akzeptieren ().

Also, in Ihrem Beispiel sind Sie den Rückstand auf 5 Verbindungen herstellen.

Hinweis .. Wenn Sie Ihr Rückstand auf 5 Verbindungen eingestellt, die folgenden Verbindungen (6., 7. usw.) und die Anschlussbuchse fallen gelassen wird, wird eine Fehler Verbinden Nachricht (so etwas wie eine Nachricht „Host aktiv die Verbindung abgelehnt“)

Andere Tipps

Dies könnte Ihnen helfen, den Code zu verstehen: http://www.amk.ca/ python / Howto / Buchsen /

Das Argument 5 zu listenSocket.listen nicht die Anzahl von Bytes zu lesen oder Puffer, es ist die backlog:

  

socket.listen(backlog)

     

für Verbindungen Hören Sie das gemacht   Steckdose. Der Rückstand Argument gibt   Die maximale Anzahl der Warteschlange   Verbindungen und sollte mindestens 1 sein;   der Maximalwert ist systemabhängig   (In der Regel 5).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top