Wenn ein Smack-Client und ein XMPP-Server auf demselben Entwicklungsrechner laufen, benötigen ihre Bytestream-Dienste eine bewusste lokale Port-Zuordnung. Ein Fehler „Address already in use“ tritt beim Öffnen des lokalen Listeners auf, bevor ein entfernter Dateitransfer versucht wird.

Der dokumentierte Standard-Port für lokales SOCKS5 in Smack ist 7777. Prüfen Sie, welcher Prozess die vorgesehene Adresse und den Port bereits belegt. Ist das ein serverseitiger Proxy, den andere Clients noch benötigen, reservieren Sie stattdessen einen anderen Port für den Client, anstatt den Serverdienst zu deaktivieren.

Die dokumentierte Socks5Proxy-API bietet setLocalSocks5ProxyPort(int). Ein negativer Wert fordert eine Suche an, die bei seinem Absolutwert beginnt und aufwärts fortgesetzt wird. Lesen Sie den tatsächlichen Listening-Port aus, wenn diese Auswahl zulässig ist, und konfigurieren Sie ihn, bevor der Listener gestartet wird.

Der vom Client angekündigte Port muss für den Teilnehmer erreichbar bleiben, von dem eine Verbindung erwartet wird. Die Wahl eines ungenutzten Ports behebt den Besitzkonflikt; sie veröffentlicht keine Route durch NAT oder eine Firewall.

Ähnliche Artikel