私は大学のプロジェクト用のゲームサーバーを作成していますので、ライブラリ/フレームワークを使用せずにこれを行います。JavaゲームサーバーからクライアントへのTCPとUDPの接続
多くの研究の後、ゲームのこの側面の信頼性がそれほど重要ではなく、失われたパケットを補うことができるため、UDPプロトコルを使用してキャラクターの移動やタイマーなどの大量の通信をクライアントとサーバーに実行させたいために。
しかし、私は、情報がクライアントに届くことが重要なアクションやイベントなど、ゲームのいくつかの他の側面についてもTCPプロトコルを使用したいと考えています。
私の問題は、一般的に、そしてJavaでUDPを使用することについてよく分かりません。私の理解からは、TCP用のオープンソケットオブジェクトを持つこととはまったく異なります。私は、クライアントとサーバー間の初期接続がTCPによって行われ、サーバーがUDPを介してサーバーと通信するために使用するクライアントにポート番号を送り返す必要がある場合、この接続が確立されたと考えていますか?
私は、複数のクライアントを持つという問題に遭遇します。UDPを介してサーバーに接続するために、異なるポート番号を割り当てる必要がありますか?したがって、サーバーには、接続されているクライアントごとに1つの異なるポート番号がありますか?
私の計画は、すべてのクライアントが1つの送信スレッドと1つの受信スレッドを接続していることです。これらのスレッドのそれぞれでTCP通信とUDP通信の両方を処理できるか、それぞれに4つのスレッドが必要ですtcpとudpの2つのクライアント?
これもちょうど私の最初の考えであり、私はスティックの完全な間違った終わりを持っている場合、ごめんなさいUDPについてはあまり知らない!誰でもこれのいずれかで助けることができればありがとう!
[Java Javaチュートリアル](https://docs.oracle.com/javase/tutorial/networking/datagrams/)から始めてください。通常、UDPクライアントは同じポートを使用します。 – bradimus
UDPやJavaを研究した場合、多くの問題のようなサウンドが解決できる可能性があります。 – DuKes0mE
私はこれを読んだけど、私はUDPのコネクションレスな性質を理解していません - サーバが複数の異なるクライアントからこのUDPポートに移動パケットを受信している場合、どのキャラクタがどのキャラクタを '接続' ? – imattacus