問題タブ [apache-mina]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - サーバー クライアント ソケットでのアイドル タイムアウト例外
私は、サーバーが現場に常駐するゲートウェイであり、クライアントを開発しているサーバークライアントプロジェクトに取り組んでいます。クライアントは、サーバーに接続してデータを取得するようにスケジュールされています。今私の問題は、サーバーが 10 秒間アイドル タイムアウトを持っていることです。サーバーとクライアントが 10 秒間アイドル状態の場合、サーバーはクライアントを自動的に切断します。タイムアウトが発生したためにサーバーがクライアントにメッセージを送信する可能性がないため、接続を閉じているクライアントでタイムアウト例外をキャッチするにはどうすればよいですか。
サーバーが何らかのネットワーク障害のためにクライアント接続を閉じると、クライアントは接続拒否例外を受け取ります。同様に、アイドルタイムアウト接続が必要です。この問題を解決するために私を助けてください。前もって感謝します。
java - 現在使用中のポートをスキップする方法は?
現在、8090 ポートで jboss を実行しており、クライアント ソケットは jboss で実行されています。データをフェッチするために、スケジュールされた間隔でサーバーソケットにリクエストを送信します。今私の質問は
8090 ポートは既に使用されているため、クライアント ソケットをそのポートで開き、サーバーに接続することは可能ですか?
1 つのポートで 2 つのアプリケーションを実行することはできますか?
すでに使用されているポートをスキップする方法。クライアント ソケットは一度に 5,000 のリクエストを開くため、多くのローカル ポートを同時に開きます。したがって、すでに使用されているポートがある場合は、それをスキップする必要があります。
java - apacheminaライブラリを使用したサーバーとバインディングサーバーの実行
Javaに少し問題があります。ポート1883でJavaでコード化されたサーバーを実行しています。サーバーはWindowsで正常に動作しますが、私のUbuntu 12.04マシンでは、javaがエラーを送信します"java.net.BindException: address already in use"
。同じポートでプロセスを実行していないと確信しているので、このエラーは私を夢中にさせています。私はapacheminaライブラリを使用しているので、それがJVMに影響を与えているかどうかはわかりません。また、root権限でeclipseを使用してサーバーを実行しようとして失敗しました。同じ経験をした人はいますか?アイデア?
java - apache minaを使用してソケットの入力または出力ストリームを取得するには?
IO セッションを使用する代わりに、データの送信または読み取りに入力ストリームと出力ストリームを使用するクライアント ソケット アプリケーションに apache mina を使用しています。ストリームを使用してサーバーにデータを書き込むにはどうすればよいですか? 可能であれば、小さな例を提供してください。
あなたの答えを教えてください。前もって感謝します
android - Android の SslFilter で Apache Mina を使用する
サーバーとAndroidクライアント間の通信にapache minaを使用しています。安全でない接続を介して接続していたときはすべて問題ありませんでしたが、数日前にsslを使用して接続を保護することにしました. Apache mina には、タスクを実行するために設計された SslFilter と呼ばれるフィルターがあります。これは、安全な接続を確立するためにキーストアとトラストストアを提供する SSL コンテキストを使用します。PC用に書かれたクライアントでminaでsslfilterを使用している場合、すべてが魅力のように機能しますが、Androidで使用しようとしている場合、これはそれほど単純ではありません。最初に、サーバーの SUN 形式の keystore から抽出した証明書をインポートし、それを変換して、弾力性のあるキャッスル プロバイダーに一致させる必要があります。これは、keytool と適切なコマンドを使用して簡単に実現できます。その後私は'
86992 [NioProcessor-3] DEBUG AuthenticationManager - セッションが閉じられました:2 260628 [NioProcessor-1] DEBUG SslFilter - SSL フィルター sslFilter をチェーンに追加します 260629 [NioProcessor-1] DEBUG SslHandler - セッション サーバー [3] (sslEngine なし) 初期化中SSL ハンドラー 260642 [NioProcessor-1] DEBUG SslHandler - セッション サーバー[3](sslEngine なし) SSL ハンドラーの初期化が完了しました。260644 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3 : 最初のハンドシェイクの開始 260646 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が NEED_UNWRAP 状態を処理中 260703 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: メッセージ受信 : HeapBuffer[ =0 lim=78 cap=2048: 16 03 01 00 49 01 00 00 45 03 01 C4 C4 C4 C4 80...
260710 [NioProcessor-1] DEBUG SslHandler - NEED_WRAP 状態を処理するセッション Server3
260711 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: メッセージの書き込み: WriteRequest : HeapBuffer[pos=0 lim=678 cap=1057: 16 03 01 02 A1 02 00 00 46 03 01 50 5C 17 25 F6...] 260711 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が NEED_UNWRAP 状態を処理しています 260712 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: SSL データを処理しています 260867 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: 受信したメッセージ: HeapBuffer[ pos= 0 lim=139 cap=2048: 16 03 01 00 86 10 00 00 82 00 80 10 B7 5D AC B3...] 260868 [NioProcessor-1] DEBUG SslHandler - Session Server3 受信メッセージの処理中 260868 [NioProcessor-1] DEBUG SslHandler - NEED_UNWRAP 状態を処理するセッション Server3 260869 [NioProcessor-1] DEBUG SslHandler - NEED_TASK 状態を処理するセッション Server3
260876 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が NEED_UNWRAP 状態を処理中 260877 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: SSL データを処理中=0 lim=43 cap=1024: 14 03 01 00 01 01 16 03 01 00 20 65 07 FB 0F 1B...] 261134 [NioProcessor-1] DEBUG SslHandler - Session Server3 受信メッセージの処理中 261135 [NioProcessor-1 ] DEBUG SslHandler - NEED_UNWRAP 状態を処理するセッション Server3 261154 [NioProcessor-1] DEBUG SslHandler - NEED_WRAP 状態を処理するセッション Server3
261157 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: メッセージの書き込み: WriteRequest : HeapBuffer[pos=0 lim=6 cap=8: 14 03 01 00 01 01] 261158 [NioProcessor-1] DEBUG SslHandler - NEED_WRAP を処理するセッション サーバー 3州
261159 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: メッセージの書き込み: WriteRequest : HeapBuffer[pos=0 lim=37 cap=66: 16 03 01 00 20 83 D9 81 59 21 9E 03 32 A3 49 17...] 261159 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が FINISHED 状態を処理しています 261160 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が保護されました 261160 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が FINISHED 状態を処理しています 261161 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 は現在保護されています 261161 [NioProcessor-1] DEBUG SslFilter - セッション サーバー 3: SSL データの処理
ご覧のとおり、すべて問題ありません。
261160 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が保護されました 261160 [NioProcessor-1] DEBUG SslHandler - セッション サーバー 3 が FINISHED 状態を処理しています
上記のリストは、接続が保護されたことを示しています。成功 !!やばい!! SSL の「ダンス」が成功した後、Android クライアントは PC クライアントと同じようにメッセージを送信しようとしますが、何も起こりません。何もありません..SslFiterエンコーディングメソッドの呼び出しのどこかでアプリケーションがハングします..サーバーはメッセージを受信しません。Android の ssl にはいくつか問題があると聞きましたが、その可能性はありますか?
重要な注意事項が 1 つあります。サーバーのプロバイダーも変更しようとしました。BouncyCastle セキュリティ プロバイダーを Java 拡張プロバイダーにインポートして、Android で使用されているプロバイダーと一致させ、それを java.security に登録しました。PC クライアントでも結果は同じです。まだSUNプロバイダーを使用しているサーバーは、BouncyCastleプロバイダーを使用してサーバーと正常に通信できます-そうではないことを確認しました。
上記、注記は無効です。プロバイダーをサーバー上のBCに変更したことは確かでしたが、そうではないことがわかりました。実際、apache mina は SSLContext の作成に関する詳細を隠しており、コンテキストはデフォルトのプロバイダーである Sun プロバイダーを使用して作成されています (BKS 形式のストアが SUN プロバイダーによってどのように正しくロードされるのか、少し混乱しています)。**実際、私の PC では TSL と BouncyCastle プロバイダーを使用する SSLContext を作成できません。
また
「 java.security.NoSuchAlgorithmException: no such algorithm: TLS for provider BC 」という例外が発生します。これは、BC が JCE プロバイダーであり、SSLContext が JSSE に属しているためと思われます。そのため、データ交換時の暗号化中にプロバイダー固有のアルゴリズムがいくつか異なるため、Android「bcプロバイダー」-サーバー「sunプロバイダー」通信に問題があるという私の仮定を証明しませんでした.**
mina、android、sslで同様の問題に直面したことがある人がいれば、アドバイスをいただければ幸いです...
java - 欠落しているアーティファクト org.apache.mina:mina-integration-ognl:bundle:2.0.2
次の方法で MINA に依存するローカルの Maven リポジトリで構成された独自の JAR があります。
私のライブラリが必要とするように Maven がバージョン 2.0.2 の JAR をダウンロードすることを期待してこれを書きました。
しかし、2.0.2 アーティファクトは Eclipse によって「バンドル」として認識されました。
アーティファクトは次のように依存mina-integration-jmx
しますmina-integration-ognl
つまりmina-integration-ognl
、バンドルになりたいということです。
このアーティファクトはリポジトリに表示されますが、ダウンロードできない理由はわかりません。
私のPOM全体
この POM はorg.red5:red5
アーティファクトの作成に使用されました。
依存関係は、red5.jar から JarAnalyzer を使用して派生させた後、red5.jar をローカル リポジトリにインストールしました。
Eclipse プロジェクトの後半で、このアーティファクトは次の POM で参照されました。
java - アプリケーション間通信にSSH接続を使用する
2種類の接続を備えたカスタムSSHサーバーとなるアプリケーションを作成したいと思います。
- クライアントがコマンドを入力し、サーバーが出力を返す同期チャネル
- ユーザーが接続してIOの読み取りを開始するストリームチャネルであるサーバーは、データを継続的に公開します。
私はJavaでそれを行っていますが、ApacheMinaSSHDはそのための適切なツールだと思います。私はなんとか認証用のコードを書くことができ(ネット上にあるリソースのおかげで)、接続で/ bin / shを実行できたので、私はすべてセットアップされていると思います。問題は、これらがどのように機能するのか、そしてミナが具体的にどのように機能するのかについての知識が不足しているため、これから私が立ち往生していることです。
基本的に、SSH接続ごとに入力ストリームと出力ストリームにアクセスする必要があります。その後、自分で整理して、それを取得する正しい方法を購入できますか?
カスタムチャネルを作成する必要がありますか?カスタムシェル?コマンドのカスタムセット?
このテーマに関するリソースを教えてもらえますか?
java - サーバーからクライアントソケットの確認応答を取得するにはどうすればよいですか?
サーバーにメッセージを送信するクライアントソケットがあります。サーバーがメッセージを受信するたびに、クライアント側で確認応答を取得したいと思います。その承認を得ることが可能ですか。私はapacheminaを使用してクライアントを開発しました。前もって感謝します。
java - java.net.Socket の Apache Mina サーバーとクライアント
私のアプリケーションは、次の構成でリッスンする Apache Mina Server にデータを送信します。
これがnet.Socketで書かれた私のクライアントコードです
ロガーの表示メッセージは受信されましたが、サーバー ハンドラmessageRecieved()
は呼び出されません。hlp してください。
java - 多くの Apache MINA リンクにアクセスすると 404 Not Found ページが表示される
サーバーから複数のクライアント接続へのファイル転送を可能にするために、Java アプリケーションにネットワーク層を埋め込む必要があります。
これには Java NIO が最適な選択肢であるという結論に達したので、既存の NIO ネットワーク フレームワークをいくつか探し始めました。
私は Apache MINA に出会い、それを学び始めました。問題は、そのリンクの多くが機能していないように見えることです。たとえば、Apache MINA 2.0.7 API へのこのリンクでは、404 Not Found ページが表示されます。Apache MINA 2.0.7 API。
それらに何が起こったのか、また別のリンクがあるかどうか教えていただけますか?
よろしくお願いします。