前提・実現したいこと
UnityでAndroid向けにターン制のオンライン対戦ゲームを作成しようと思っています。
今までゲーム作成の経験はありません。サーバー↔ブラウザのWebアプリは作ったことがあります。
今回は2人対戦なので、マッチングはサーバーを介して行い、その後の対戦部分はサーバーを介さずにクライアント同士がソケット通信でデータを送りあうものを作ろうと思っています。
標準ライブラリのSystem.Net.Socketsを使って実装しています。
困っていること
以下の様なソースコードでは動きませんでした。
IPAddress[] lIp = Dns.GetHostAddresses(Dns.GetHostName()); foreach (var iIp in lIp) { if (iIp.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { return iIp.ToString(); //localhostの値しか帰ってこない } } return lIp[0].ToString(); //localhostの値しか帰ってこない
・ホスト端末のグローバルのIPアドレスが取得できない。
・ソケット通信のサンプルコードはたくさん見つかるが、同一ネットワーク内のサンプルしかみつからない
補足情報(FW/ツールのバージョンなど)
・Unity:5.3.2
・.NetFramework:不明(多分static using が使えないので4.6以前)
※すみません、Unityプロジェクトだからか、プロパティで見られずよくわかりませんでした
・VisualStudio:Community 2017
そのほか
・グローバルIPアドレスを取得するサイトを叩くのは、余計な負荷を人様のサーバーにかけるので良くないと思いやめました。
・ソケット通信にこだわるつもりはないので、プッシュ型の代替案などあれば教えていただけると幸いです。
・Android端末同士でのP2P通信の実装を行ったことがありアドバイスがある方がいましたらハマリどころなど教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/17 02:11
2018/09/17 02:29