Smack のローカル bytestream プロキシ用にポートを予約する
Smack クライアントが XMPP プロキシサービスと開発マシンを共有する場合に、ローカルの SOCKS5 待受ポートを選びます。
Smack クライアントと XMPP サーバーが同じ開発マシン上で動作する場合、両者の bytestream サービスには意図的なローカルポートの所有が必要です。「Address already in use」の失敗は、リモートへのファイル転送を試みる前に、ローカルの待受を開く時点で発生します。
Smack の文書化された既定のローカル SOCKS5 ポートは 7777 です。対象のアドレスとポートをすでに所有しているプロセスを確認してください。それが他のクライアントにまだ必要なサーバー側プロキシである場合は、サーバーサービスを無効化するのではなく、クライアント用に別のポートを予約します。
文書化された Socks5Proxy API には setLocalSocks5ProxyPort(int) があります。負の値は、その絶対値から始めて上方向へ続く検索を要求します。その選択が許可されている場合は実際の待受ポートを読み取り、待受を開始する前に設定してください。
クライアントが通知するポートは、接続すると想定される相手から到達可能なままである必要があります。未使用のポートを選ぶことは所有権を解決しますが、NAT やファイアウォールを越える経路を公開するものではありません。