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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

3442閲覧

VirtualBOXでNATのポートフォワーディングを使ってUDP通信がしたい

massy7

総合スコア45

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2016/04/27 05:10

編集2016/04/27 05:17

###環境
VirtualBOX 5.0.8 r103449
Vagrant 1.7.4
ホストOS:OS X Yosemite
ゲストOS:Ubuntu 14.04.3 LTS (64bit)
Unity 5.0.1f1 Personal

###実現したいこと
ホストOSで起動しているUnityからゲストOSへUDP通信をしたいです.
(TCP通信のやり方もおしえてくださるとありがたいです.)
vagrant sshでは正常に接続できています.

###やったこと

  • UnityのUDP通信プログラム

UDPClient.cs

1using UnityEngine; 2using System.Net.Sockets; 3using System.Text; 4using System.Collections; 5 6public class UDPClient : MonoBehaviour 7{ 8 // broadcast address 9 public string host = "127.0.0.255"; 10 public int port = 3333; 11 private UdpClient client; 12 13 public Vector3 position; 14 15 void Start () 16 { 17 client = new UdpClient(); 18 client.Connect(host, port); 19 } 20 21 void Update () 22 { 23 } 24 25 void OnGUI() 26 { 27 position = Input.mousePosition; 28 position.z = 10; 29 30 byte[] dgram = Encoding.UTF8.GetBytes(position.ToString()); 31 client.Send(dgram, dgram.Length); 32 } 33 34 void OnApplicationQuit() 35 { 36 client.Close(); 37 } 38}
  • Vagrantfileに以下のコードを追加

Vagrantfile

1config.vm.network :forwarded_port, guest: 3333, host: 3333, protocol: "udp"
  • VirtualBOXのネットワーク設定にて割り当てをNATに,ポートフォワーディングを以下の通りに設定

プロトコル:UDP,ホストポート:3333,ゲストポート:3333(ポートは33333なども試したがダメ)

###発生している問題

sudo tcpdump port 3333

を実行して確認したところ,ホストOSでは正常に受信できているがゲストOSで受信できていない.

ご協力よろしくお願いします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

ループバックアドレスのネットワークマスクは/8ですので、ブロードキャストアドレスは"127.255.255.255"です。"127.0.0.255"はループバックアドレスの一つにすぎないため、ホスト側で"127.0.0.255"もループバックアドレスとして使うと設定されてなければ、"127.0.0.255:3333"を受け取る事はできません。普通に"127.0.0.1"で試して見て下さい。

投稿2016/05/01 00:08

raccy

総合スコア21735

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

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

massy7

2016/05/02 05:41

解決しました.ありがとうございます.ネットワークマスクなどにも気をつけたいと思います.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問