アプリケーションの他のインスタンスに接続するためにブロードキャストを送信しようとしています。Mac の Mono 3 コンソール プログラムで以下のコードを実行しています (ただし、Windows で VS2012 も試しました)。ただし、メッセージは決して受信されません。受信者はただそこに座って通話をブロックします
byte[] data = udpClient.Receive (ref endPoint);
編集:
私は試した:
var recipient = new IPEndPoint (new IPAddress(new byte[] {192, 255, 255, 255}), 1667);
また、追加されました
udpClient.EnableBroadcast = true;
送信者に。まだ: 何も受信していません。以上です。何か提案はありますか?
using System;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace NetworkServiceTest_Console
{
class MainClass
{
public static void Main (string[] args)
{
Task.Run (() => Receiver ());
Task.Run (() => {
while(true)
{
Sender ();
Thread.Sleep(1000);
}
});
Console.ReadLine ();
}
static void Sender()
{
Console.WriteLine ("Sending...");
var recipient = new IPEndPoint (IPAddress.Broadcast, 667);
var udpClient = new UdpClient ();
var data = Encoding.UTF8.GetBytes("Hallo world!");
int bytesSent = udpClient.Send (data, data.Length, recipient);
udpClient.Close ();
Console.WriteLine ("{0} bytes sent", bytesSent);
}
static void Receiver()
{
Console.WriteLine ("Receiving...");
var udpClient = new UdpClient ();
var endPoint = new IPEndPoint(IPAddress.Any, 667);
byte[] data = udpClient.Receive (ref endPoint);
Console.WriteLine ("Received '{0}'.", Encoding.UTF8.GetString (data));
udpClient.Close ();
}
}
}