問題タブ [kryonet]
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 - Android Kryonet クライアントが PC サーバーに接続しませんか?
私は日食で基本的なサーバーを作りました:
次に、Androidスタジオでクライアントを作成しました。ライブラリを正しくインストールしました。(Google によると) Kryonet jar を libs フォルダーに入れ、プロジェクトを再構築しました。その後、Kryonet クラスを使用できます。私のクライアント用のコードは次のとおりです。
これは、通常の Java クライアントで使用するコードとまったく同じですが、現在は Android デバイスから直接実行されています。次のエラーが表示されます。
ポート転送してもIPに接続できません。どうして繋がらないの?これをマニフェストファイルに追加するためにオンラインで読みました:
だから、私はした:
それでもまったく役に立たない。私は何を間違っていますか?(PSネットワークIPとパブリックIPの両方で試しました。何が間違っているのかわかりません。通常のJavaプログラムではすべて正常に動作しますが、Androidアプリではバグアウトします。)
java - アンドロイド スタジオ | Libgdx | Kryonet ライブラリの追加 - NoClassDefFoundError
私は現在 Android ゲームに取り組んでおり、マルチプレイヤーを実装したいと考えています。だから私はKryonetを使いたかった:
- ライブラリをダウンロードしました ( https://github.com/EsotericSoftware/kryonet/releases )
- コアモジュールに libs フォルダーを作成しました
- kryonet-2.21-all.jar をそれにコピーしました
build.gradleにモジュールとして追加しました:
/li>
Android Studio では動作しているように見えましたが、すべてのインポートなどにアクセスできましたが、デバイスでアプリを実行すると..クラッシュしました
cmd などで /gradlew clean を試しましたが、何も役に立ちませんでした。これで数時間立ち往生しているヒントを教えてください..ありがとう!
java - Kryonet を使用した Java ゲーム ネットワーキング: 最低限のパケット転送
Opengl と Jbox2d を使用して、Java でリアルタイム 2D ゲームを作成しています。
ネットワーク コンポーネントのコーディングを開始したいと考えています。
box2d を使用していますが、私のゲームは非常に小さく、Kryonet ライブラリを使用してベアボーン アーキテクチャを作成したいと考えています。
プログラム自体はチェスのような「対戦ゲーム」です。私が考えることができる最も論理的なシステムは、すべてのプレイヤー データを格納する専用サーバーを用意することです。
PlayerA と PlayerB は、コンピューター間の TCP リンクを容易にする専用サーバーに接続します。
試合が完了すると、両方のプレーヤーが結果のデータを専用サーバーに送り返します。専用サーバーは認証を行い、それぞれのプレーヤー データを保存します。
よく知られている方のために説明すると、Diablo2 は同様のセットアップを実装しました。
この TCP 接続で、ホスト (プレイヤー A としましょう) からクライアント (プレイヤー B) に形状座標のベクトル データを送信し、クライアントが独自にレンダリングするようにしたいと考えています。
次に、クライアントがマウス/キーボードのデータをホストに送り返すようにします。すべての処理は、ホストのコンピューターで実行されます。
私の最初の質問: このネットワーク ロジックに欠陥はありますか?
私の 2 番目の質問: Kryonet を使用してベアボーン サーバー/クライアント パケット転送 (説明) を実装するにはどうすればよいですか?
注: 別のライブラリを使用して、C++ でこの正確なタイプのパケット転送を行いました。私が見つけた Kryonet のドキュメンテーション/チュートリアルはひどいものです。優れたサポートを備えた別のライブラリを提案することは、受け入れられる答えです。
java - Kryonet -- クラス内にクラスを登録するにはどうすればよいですか?
私は次のクラスを持っています:
そして、私はそれを次のように登録します:
QueryResults
これは、コンテナ (この場合は a) が含まれているため、シリアライズを試行するまではうまく機能していましたHashSet
(同様に a も試しましたArrayList
が、同じ結果が得られました)。
エンドポイントでこのクラスにデータを入力し、最終的にシリアル化して呼び出し元に送り返すと、次の出力が得られます。
を明示的に呼び出すとRegistrar.RegisterClass(this, HashSet.class);
、すべてが問題なく動作します。ただし、多くの種類のコンテナーを使用して、より高度なクラスを実装し始めると、これは面倒な場合があります。
私は何か間違ったことをしていますか?
java - Socket.IO と Kryonet を接続し、接続しましたが、TCP 登録中にタイムアウトしました
ソケット接続を受け入れるように nodeJS サーバーをセットアップしましたが、これは私の Web アプリケーションで正常に動作するようです。
今、Android、iOS(RoboVMですが)、およびデスクトップでKryonetライブラリからソケット接続を受け入れるように同じサーバーをセットアップしようとしています。
ノードのセットアップ:
gameserver.js
live_api.js
それから私のアプリ内で私は持っています:
クライアントに接続すると、次のエラーが表示されます。
java - 送信されたオブジェクトの値の比較
私は単純な irc サーバーとクライアントを作成しようとしています。サーバーに送信された特定のメッセージに対してサーバーが異なる応答をする方法を見つけようとしています。ネットワーキングにkryonet apiを使用しています。これが私のリスナーです:
接続時に「Hello」というメッセージを送信するクライアント プログラムを作成しました。ただし、サーバーは msg.text が実際には「Hello」に等しいことを認識できないか、その他の異常が発生しています。エラーは発生しませんが、サーバーは条件ステートメントを無視します。また、クライアントが送信する文字列が本来あるべきものであることも確認しました。