私はCheckersゲームをアンドロイドプラットフォームのために統一しています。私はこのゲームのマルチプレイヤーを作ってTCP/IPネットワークをC#言語で実装するという仕事を与えられました。サーバー側ではGolangを使う必要があります。私はゲーム自体をほぼ完成させましたが、私はサーバとTCPについては何も知らず、ゲームのためにそれらを実装する方法を知りません。 そのやチュートリアルを開始する方法はありますか? アドバイスは素晴らしいです! ありがとうございます!単体マルチプレイヤーチェッカーゲームのためのGolangのC#とサーバーでTcp/ipネットワークを書く方法
答えて
さて、あなたはアプリのサーバーとクライアントのコミュニケーションを構築しようとしています。コミュニケーションについて話すと、常に現れるキーワードがあります:socket。つまり、ソケットは、同じマシンまたは異なるマシン上の2つの異なるプロセス間の通信を可能にします。さまざまな種類のソケットがありますが、そのうちのいくつかの違いを確認することができますhereとhere。
は、通信チャネルを確立するには、クライアント側で必要な手順は以下のとおりです。- はソケット()システムコールによってソケットを作成します。
- connect()システムコールを使用して、サーバのアドレスにソケットを接続します。
- によってデータを送受信します。と書き込み()です。
とサーバ側では、以下のとおりです。
- はソケット()システムコールによってソケットを作成します。
- bind()システムコールを使用してソケットをアドレス(例:ip:port)にバインドします。
- との接続をlistenする()システムコール。
- accept()システムコールを使用して接続を受け入れます。
- によってデータを送受信します。と書き込み()です。
通常、サーバー側では、(サーバーに接続する各プレーヤーに新しいソケットを作成するのではなく)パフォーマンスを向上させるために、ソケットプールを作成します。
サーバーとクライアントの間のやり取りの流れを確認するには、下の画像を確認してください。あなたのケースでは、リクエストは、ゲーム情報を使ってプレーヤーからサーバーに送信されるメッセージです(たとえば、プレーヤーがその順番に行った移動)。サーバからプレーヤに向かうメッセージは、ちょうどACKであってもよいし、より精巧な情報(例えば、相手がその順番で行った移動)であってもよい。
は今、データの伝送は:インターネットはちょうどビットを処理することができますし、オブジェクトまたは構造体が何であるかを理解していないので、彼らがインターネットに出かけたりから到着したとき、我々はSerialize and Deserializeにメッセージを持っていますそれ。簡単にこれを実現するには、このプロセスを簡略化し、さまざまな言語(例:GoやC#など)で使用できるGoogleのUncleが作成したツールProtocol Buffersを使用できます。
GoとC#で別々にサーバークライアントアプリケーションを構築する方法については、下記の例を参考にしてください。あなたは、あなたがあなたのプロジェクトに必要なのですかどの部分を選択することができます。
は、それが助けを願って!
あなたの貴重な時間を助けてくれてありがとう! – Sherzod
- 1. Cで単体テストを書く正しい方法
- 2. ocUnitでジオロケーションの単体テストを書く方法
- 3. backbone.jsでイベントの単体テストを書く方法
- 4. 小さなサーバーを書くための最も速い方法
- 5. モノのC#で簡単なRESTベースのサーバーを書くには?
- 6. Rails5 - サービスの単体テストを書くための最良の方法は何ですか?
- 7. TCPIPサーバー/クリエートアプリケーションの通信を修正する方法
- 8. サーバー側の流星コードの単体テストの書き方は?
- 9. golangにMongoDB $スライスを書く方法
- 10. C++では、構造体へのポインタのメモリを解放するためのデストラクタを書く方法は?
- 11. 構造体のアドレスをC言語のファイルに書く方法
- 12. Pythonで単体テストを書く良い方法
- 13. 単体テストの書き方
- 14. ネットワーク接続に依存するAndroidサービスの単体テスト方法
- 15. MockMvcでDefaultMultipartHttpServletRequestコントローラメソッドの単体テストを書く方法は?このような
- 16. フォーム要素の単体テストを書く
- 17. BadRequestの単体テストケースを書くには?
- 18. ストップウォッチの単体テストを書くには?
- 19. オートメーションスクリプトの単体テストを書くには?
- 20. golangのユニットテストのために動物園サーバーをモックする方法は?
- 21. node.jsで単体テストを書く最良の方法は何ですか?
- 22. XcodeでParseで単体テストを書く方法(私の場合はSwift)?
- 23. C#でネットワーク経由でサーバーにアクセスできるかどうかを確認するための速い方法
- 24. 単体テストのためのX509Certificate2の模擬/作成方法
- 25. jabberd14サーバーのクライアントを書く方法
- 26. iPhoneアプリのサーバーを書く方法
- 27. Angular 2の最終リリースでHTTP模擬単体テストを書く方法は?
- 28. Visual Studioで単体テストを書くコード
- 29. また、DelphiのCOMサーバーでもあるEXEを書く方法
- 30. javascriptのチェックボックスコンテナ - これを書くための簡単な方法がある
これは広すぎます - SOは一般的なアドバイスではなく特定の問題に関する具体的な質問に答えるためのものです。チュートリアルはオンラインでたくさんあります。 – hnefatl
あなたのキーワードは 'MMORPG'でなければなりません、' Redis + Tornado'の 'websocket'で簡単なMMORPGサーバベースを書いています。しかし、Pythonの基本を知っておくべきです。ここにrepのhttps:// github.com/land-pack/akingがあります。 –
これは割り当てです。サーバーはGolangで書かれていて、TCP/IPネットワークはC#で書かれています。私は団結してゲームを作った、ネットワークのものを実装する方法を知る必要がある? – Sherzod