コード例 #1
0
ファイル: Program.cs プロジェクト: unarov/StockQuote
            static void Main(string[] args)
            {
                NaiveGenerator naiveGenerator = new NaiveGenerator(10, 4000);
                IPAddress      ip             = IPAddress.Loopback;
                int            port           = 80;

                UdpSender sender     = new UdpSender(ip, port, naiveGenerator);
                var       udpReciver = new UdpReciver(port);
                //Thread threadSend1 = new Thread(new ThreadStart(sender.Start));
                //Thread threadSend2 = new Thread(new ThreadStart(sender.Start));
                //Thread threadRecive = new Thread(new ThreadStart(udpReciver.Start));
                //threadSend1.Start();
                //threadSend2.Start();
                //threadRecive.Start();
                var task1 = Task.Run(sender.Start);
                var task2 = Task.Run(udpReciver.Start);
                var foo   = task1.Status;

                Thread.Sleep(10000);
                Console.WriteLine($"Get:{udpReciver.Count}");
            }
コード例 #2
0
        public MainWindowViewModel()
        {
            SendCommand = new DelegateCommand(
                () => {
                // 送信データ
                var buffer = Encoding.UTF8.GetBytes(SendData);

                var sender = new UnicastUdpSender(new IPEndPoint(IPAddress.Parse("127.0.0.1"), IntPort), new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024), Encoding.UTF8);

                var rtpPacket = new RtpPacket(buffer, 1, buffer.Length);

                var senddatabyte = sender.SendData(rtpPacket.GetPacket());

                System.Console.WriteLine("send data byte => {0}", senddatabyte);
            }
                );

            SendData = @"{
  ""array"": [
    1,
    2,
    3
  ],
  ""boolean"": true,
  ""color"": ""#82b92c"",
  ""null"": null,
  ""number"": 123,
  ""object"": {
                ""a"": ""b"",
    ""c"": ""d"",
    ""e"": ""f""
  },
  ""string"": ""Hello World""
}
";

            // 起動時に受信するようにしておく
            var r = new UdpReciver(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6000), Encoding.UTF8);

            r.UdpPacketRecived += (s, e) => {
                System.Console.WriteLine("recive packet!!");
            };
            r.ReciveDataAsync();

            // ---------------すべてのNICで送信するサンプル----------------

            //var nis = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
            //.Where(v => v.OperationalStatus == System.Net.NetworkInformation.OperationalStatus.Up)
            //.Where(v => v.GetIPProperties().UnicastAddresses.Count(y => y.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) >= 1);

            //// ユニキャストアドレスをすべて列挙
            //var UniAddresses = nis.SelectMany(v => v.GetIPProperties().UnicastAddresses).Where(v => v.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
            //NetworkInterFaces.AddRange(UniAddresses);

            //foreach (var address in UniAddresses)
            //{
            //    if (address.Address.ToString().Contains("192.168"))
            //    {
            //        // アドレス毎に送信(port 0なら任意のポートから)
            //        using (var UdpClient = new System.Net.Sockets.UdpClient(new IPEndPoint(address.Address, 0)))
            //        {
            //            UdpClient.Send(buffer, buffer.Length, new IPEndPoint( IPAddress.Parse("224.0.0.10"), port));
            //        }
            //    }
            //}

            //// ブロードキャスト送信(IPV4)
            //var client = new UdpClient(port, AddressFamily.InterNetwork);
            //client.EnableBroadcast = true;

            //client.Ttl = 10;

            //client.Connect(new IPEndPoint(IPAddress.Broadcast, port));

            //client.Send(buffer, buffer.Length);
            //client.Close();
        }