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}"); }
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(); }