Коли клієнт Smack і сервер XMPP працюють на одній машині розробки, їхні bytestream-служби потребують усвідомленого локального володіння портом. Помилка «Address already in use» виникає під час відкриття локального слухача, ще до спроби віддаленого передавання файлу.

Задокументований типовий локальний порт SOCKS5 у Smack — 7777. Перевірте, який процес уже займає потрібну адресу й порт. Якщо це серверний проксі, який досі потрібен іншим клієнтам, зарезервуйте для клієнта інший порт, а не вимикайте серверну службу.

Задокументований API Socks5Proxy має setLocalSocks5ProxyPort(int). Від’ємне значення запитує пошук, що починається з його абсолютного значення й продовжується вгору. Зчитайте фактичний порт прослуховування, коли такий вибір дозволено, і налаштуйте його до запуску слухача.

Порт, який клієнт оголошує, має залишатися доступним для учасника, від якого очікується підключення. Вибір вільного порту виправляє володіння; він не публікує маршрут через NAT або міжмережевий екран.

Схожі статті