質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Q&A

解決済

2回答

4277閲覧

ネットゲームの通信について

Karasuryu

総合スコア52

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

0グッド

8クリップ

投稿2019/08/16 12:41

編集2019/08/16 12:42

世のネットゲームの中にはサーバーを介さずにプレイヤーの端末だけで通信してプレイするものもあると思います。
ソケットでそれぞれのIPに接続しているのだと思うのですが、どのようにすればそれが実現できるのですか?
Pythonのsocketを使ってみてもやり方がわかりませんでした。調べてみても同じネットワーク内もしくは同じ端末内でのソケット通信の方法しか見つかりませんでした。ルーターのポート開放が必要なのかもしれませんが、基本的に世のネットゲームはそのような面倒な手続きなしに普通に接続ができています。これはどのように実現しているのですか?TCP/IPやネットワークセキュリティなどについての知識はほぼありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyoya0819

2019/08/16 12:43

> サーバーを介さずにプレイヤーの端末だけで通信してプレイするもの 具体的な名前を教えていただけませんか?
guest

回答2

0

ベストアンサー

サーバーを介さずにプレイヤーの端末だけで通信

この通信形態を俗にP2P(Peer to Peer)といいます。

ルーターのポート開放が必要なのかもしれませんが、基本的に世のネットゲームはそのような面倒な手続きなしに普通に接続ができています

世のネットゲームはUPnP(Universal Plug and Play)やUDPホールパンチングといったNAT traversalの技術/テクニックを使用してP2Pを実現しています。

Pythonのsocketを使ってみてもやり方がわかりませんでした。

一般に求められるP2Pは、IPやTCPやUDPよりも上位に位置する概念なので、Pythonのsocketを単純に使用するだけでは世のP2P通信は実現できません。

TCP/IPやネットワークセキュリティなどについての知識はほぼありません。

ネットワークの知識がないと色々と厳しいかもしれませんが、キーワードはこの回答に記しましたので、拾って調べて自分のものにしてください。これらが理解できればこの記事に書いてある内容なんかも「あーなるほどね」と理解できると思います。

頑張ってください。

投稿2019/08/16 17:17

編集2019/08/16 17:20
YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Karasuryu

2019/08/18 15:45

ありがとうございます。参考にします。
guest

0

マリオカートとかはマッチングは任天堂のサーバで行いますが、ゲームはクライアントだけで通信してます。が、クライアントの中で回線が速そうなクライアントをサーバに選んで、やはりサーバとクライアントのネットワークで通信しています。

投稿2019/08/20 21:40

leiqunni

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Karasuryu

2019/09/12 13:52

そうなんですか。サーバーに選ばれるユーザーは自分でルーターのポート開放をしているのですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問