次のコードは、ポート15000でパケットを送信します。
int port = 15000;
UdpClient udp = new UdpClient();
//udp.EnableBroadcast = true; //This was suggested in a now deleted answer
IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, port);
string str4 = "I want to receive this!";
byte[] sendBytes4 = Encoding.ASCII.GetBytes(str4);
udp.Send(sendBytes4, sendBytes4.Length, groupEP);
udp.Close();
しかし、それを別のコンピューターで受け取れないとしたら、それはちょっと役に立たない。必要なのは、LAN上の別のコンピューターにコマンドを送信し、それを受信して何かを実行することだけです。
Pcapライブラリを使用せずに、これを実現する方法はありますか?私のプログラムが通信しているコンピューターはWindowsXP32ビットであり、送信側のコンピューターは違いがあればWindows764ビットです。net send
いろいろなコマンドを調べてみましたが、わかりません。
また、物理的に「ipconfig」と入力できるため、コンピューター(XP 1)のローカルIPにもアクセスできます。
編集:これが私が使用している受信機能で、どこかからコピーされたものです:
public void ReceiveBroadcast(int port)
{
Debug.WriteLine("Trying to receive...");
UdpClient client = null;
try
{
client = new UdpClient(port);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
IPEndPoint server = new IPEndPoint(IPAddress.Broadcast, port);
byte[] packet = client.Receive(ref server);
Debug.WriteLine(Encoding.ASCII.GetString(packet));
}
電話をかけReceiveBroadcast(15000)
ていますが、出力がまったくありません。