インターネット上で動作するチェスのマルチプレイヤー ゲームを作成する必要があります。私は GUI ベースのチェス プラットフォームを管理してきましたが、プログラミングとネットワーキングの初心者です。次に、インターネット経由でゲームを構成するという課題を克服する必要があります。そのためには、サードパーティのアプリケーションまたはソフトウェア (ソケット プログラミング以外のもの) を使用して、2 台のマシンで実行されている Python プログラムを相互に通信させたいと考えています。私が望んでいるのは、誰かが動きをするたびに、インターネットを介して彼/彼女のチェスの駒の更新された座標の文字列/リストを2番目のプレーヤーに送信して、彼がどの動きがあったかを見ることができるようにすることです作る。どこから始めればよいか、何を読むべきか教えてください。テレパシーのようなオープン ソースのチャット ユーティリティを使用して、座標の更新された文字列/リストを送信するというアイデアは実現可能ですか?
3 に答える
socket モジュールを使用したいと思います。サンプルプログラム。ソケットを使用するのはそれほど難しいことではありません。基本的に、サーバー側は , を使用する必要がbind()
ありlisten()
、accept()
クライアントは単純にconnect()
. そこからrecv()
とsendall()
を使用して、それぞれデータを送受信できます。本当に を使いたくない場合は、 IRCやXMPPsocket
などのチャット プロトコルを使用できます。
これは幅広い、独断的な質問ですが、私が Python で頼りにしているネットワーク通信プロトコルは Twisted のPerspective Brokerです。イベント駆動型で、セットアップが複雑で、プログラムのイベント ループを制御する必要がありますが、うまく機能します。クライアントとサーバー間の双方向通信が可能で、リモート オブジェクトの利便性があります。
チャット/IM ソリューションは良いアイデアのようです。
チャット/IM の場合、Jabber/XMPP を使用できます。独自のサーバーをセットアップするか、一般向けにサーバーをホストしている誰かを見つける必要があります. Jabber サーバーのセットアップは非常に簡単です。たとえば、OpenFireを使用できます。Jabber に接続するには、python xmppライブラリを使用してメッセージを送受信できます。Jabber ライブラリは非常に使いやすい傾向にあるため、これが最も簡単な方法かもしれません。(ただし、Python ではなく、Java と .NET で実行しました)。
もう 1 つのアプローチは、 Twitterメッセージのようなものを使用することです。Python Twitter ライブラリを参照してください: どちらですか? ダイレクト メッセージングをサポートするライブラリの推奨事項 (これが必要です)。これの利点は、twitter API を習得すれば、独自のサーバーが必要ないことです。