Frage

Manchmal (ziemlich selten), wenn ich zu einer laufenden Instanz eines com.sun.net.httpserver.HttpServer verbinden bekomme ich eine „Verbindung abgelehnt“ -Meldung zurück.

Jeder weiß, woran das liegen könnte? Gibt es einen Thread Begrenzung für die Anzahl der Verbindungen kann damit umgehen? Kann ich es erhöhen? Vielen Dank. -r

War es hilfreich?

Lösung

Von die doc :

  

Wenn an eine Adresse Bindung und Port   Nummer kann die Anwendung auch   Geben Sie einen ganzzahligen Backlog-Parameter.   Dies stellt die maximale Anzahl der   eingehende TCP-Verbindungen, die die   System intern Warteschlange.   Verbindungen in die Warteschlange gestellt, während sie sind   wartet darauf, von der angenommen zu werden   Httpserver. Wenn das Limit erreicht ist,   weitere Verbindungen können abgelehnt werden   durch die (oder möglicherweise ignoriert)   zugrunde liegende TCP-Implementierung. Rahmen   der richtige Rückstand Wert ein   Kompromiss zwischen effizienten Ressourcen   Verwendung in der TCP-Schicht (Einstellung nicht   zu hoch) und ermöglicht eine angemessene   Durchsatz von eingehenden Anfragen (nicht   Setzen sie zu niedrig).

Sie dies sehen werden können.

Alternativ , haben Sie setzen einen Testamentsvollstrecker mit setExecutor () . Der Default-Executor haben weniger Threads konfiguriert, als Sie brauchen, und ein entsprechend konfiguriertes ThreadPoolExecutor arbeiten kann.

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