問題タブ [kryo]
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 - 1 つのプロトコルのみで Kryonet サーバーを実行するにはどうすればよいですか?
私は現在、自分のゲームに Java ネットワーク ライブラリである Kryonet を使用することを計画しています。TCP よりも高速な UDP プロトコルを使用します。私は Kryonet API が好きです。その非常にクリーンなコードですが、サーバーを UDP でのみ実行したい場合にのみ、TCP と UDP の両方でサーバーを実行できるように見えます。
java - KryoNet - Boolean xx = new clientprocess(); でクライアントを起動するにはどうすればよいですか? 戻り値を取得するには?
kryonetを使用してサーバー/クライアント部分を管理する小さな Java マルチプレイヤー ゲームを作成しています。少し質問があります。私のサーバー プログラムでは、ブール値の "on" で呼び出された新しいメソッドでクライアントを開始します。
私のclientprocess(); では 、 new client() ;、client.connect、および新しいクライアントのクラス登録を取得します。また、3 つのメソッドconn/receive/disconnも含まれています。現在、戻りデータを使用してブール値を取得する方法がわかりません。(実際には、このクライアントを使用して BDD サーバーに接続し、パス/ユーザー チェックを取得するだけなので、クライアントで処理するためにブール値が必要です。)
クライアント接続の停止と終了、リスナーの削除などを試みましたが、 Received()から抜け出せません。または切断された() ; 方法。また、Void メソッドであるため、メソッド内で戻り値を作成することはできません。(私の実際のリターンはclientprocess()の最後にあります; disconnected()の後; しかし、コードには到達しません。)
クライアント プロセスを完全に停止してreturn boolean;
ステートメントに到達し、ログイン プロセスを続行する方法はありますか?
これが私のコードの一部で、次で始まりますBoolean xx = new loginProcess()
:
java - チャット サーバー クライアント エラー
パネルに jar チャット クライアント (kryonet jar ファイルを使用) を持つアプレットを開発しました。他のプロジェクトでは、このアプレットを呼び出しています (アプレット プロジェクトを jar ファイルとして変換し、それを 2 番目のプロジェクトのルート パスに配置し、すべての jar ファイルを提供することにより) アプレットは正常に開いていますが、チャット クライアントがエラーを登録するために使用すると、サーバー側 (別のシステムで実行されているチャット サーバー)。それは、次の例外を言っています。
チャットクライアントとサーバーのkryonetの例で与えられた以下の例を使用しました
1) Network クラスを両方のアプリケーションの同じパッケージに配置しました。2) この例は、アプレットに適用せずにダウンロードして実行すると正常に動作します。
java - Web アプリケーションからスタンドアロン アプリケーションにアクセスする
これはばかげた質問かもしれません。しかし、私はそれを明確にする選択肢がありません。LAN 環境システムで実行されているチャット サーバーがあります。テスト目的で、チャット クライアント アプレットを Tomcat サーバーにデプロイしました。Web ページからサーバーにアクセスする方法。ローカル IP アドレスを指定しました (192.168.0.XXX これは非常に悪いことだとわかっています)。アプリケーションは、アクセスが拒否されたと言っています。この承認を得て
java - ジェティソンまたはクリオ
私は現在、私が取り組んでいるプロジェクトに JAXB を使用しており、ライブラリのアーカイブされた xml をアーカイブされた json に変換しようとしています。Jettisonは実際には JAXB で動作するため、実装が簡単であると思われるため、 Jettisonを使用すると考えました。ただし、 Jettisonが含まれていない古いベンチマークを見ると、 Kryo がより小さなファイルを生成し、シリアライズとデシリアライズが他の代替手段よりも高速であることがわかりました。
主な違いや、特に Android アプリケーションなどの将来のプロジェクトについて、Jettison が Kryo にどのように対応するかを教えてください。
編集:
私は、より小さなファイルを生成し、より高速に動作するものを探していると思います。ファイルを処理するだけで読むつもりはないので、人間の可読性が犠牲になる可能性があります
java - Kryo を使用した一般的な Java シリアライゼーション/デシリアライゼーション
デフォルトのシリアライザー( ) を使用して、カスタム クラス (たとえば、SomeClass
デフォルトの引数なしコンストラクターを持つ ) のオブジェクトをbyte[]
配列にシリアライズおよびデシリアライズしようとしています。Kryo 2.19
FieldSerializer
シリアル化は問題なく動作しているようですが、実際の実装によっては、逆シリアル化でさまざまな例外が発生しSomeClass
ます。
コードは次のようになります。
私が取得している例外の例は次のとおりです。
パラメータ化された型は、逆シリアル化するのに問題があるようです。この仮定をテストするために、 と のパラメーター化された実装を次に示しSomeClass
ますgetObject()
。
これは正常にシリアル化されますが、逆シリアル化では次の例外がスローされます (文字列の最初の文字が例外の原因で報告されないことに注意してください)。
上記のクラスがパラメーター化なしで実装されている場合 (つまり、elements
配列が として宣言されているString[]
場合)、逆シリアル化は期待どおりに機能します。
何か案は?
java - タブのみの Kryo シリアル化エラー
この問題が発生しました: kryonet ライブラリで開発されたマルチプレイヤー ゲームは、すべてのデバイスで魅力的に動作しますが、Galaxy タブでクラッシュすることはめったにありません。表示されるエラーは次のとおりです。
E/AndroidRuntime(16861): 致命的な例外: スレッド 30 E/AndroidRuntime(16861): com.esotericsoftware.kryo.KryoException: java.lang.StringIndexOutOfBoundsException: start=0 end=5 data.length=512 index=6 length= 5 E/AndroidRuntime(16861): シリアル化トレース: E/AndroidRuntime(16861): メール (com.momasoft.sudokutournament.network.Network$Login) E/AndroidRuntime(16861): com.esotericsoftware.kryo.serializers.FieldSerializer.書き込み (FieldSerializer.java:203)
何が問題なのか本当にわかりません。私の Login クラスは適切に登録されており、2 つの文字列しか含まれていません。これは、galaxy タブを除くほぼすべてのデバイスで機能します。どうすれば修正できますか?
java - Kyro シリアル化エラー
私は学校で日食を使ってサムドライブで作業していて、サムドライブを家に持ち帰りました。
次回プログラムを実行したときに、突然このエラーが発生しました。
この種のエラーは見たことがなく、修正方法がわかりません。kryonet ライブラリを使用するたびに発生します。利用可能なソリューションはありますか?
android - Android3.0でのみ例外
私はAndroidアプリにKryonetを使用しており、3.0バージョンを除くすべてのAndroidバージョンで完全に動作します。次の例外が発生します。
なぜこれはAndroid3.0でのみ発生するのですか?それを解決する方法はありますか?
ありがとうございました!