C#中如何使用UDP广播做网络发现 [英] C# How to do Network discovery using UDP Broadcast

查看:1477
本文介绍了C#中如何使用UDP广播做网络发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在C#中使用UDP广播做网络发现。我不知道如何做到这一点。
需要关于如何做到这一点建议吗?

I want to to do network discovery using UDP Broadcast on c#. I don't know how to do this. Need some advice on how to do it?

我想要做这样的教程
<一href=\"http://michieldemey.be/blog/network-discovery-using-udp-broadcast/\">http://michieldemey.be/blog/network-discovery-using-udp-broadcast/

推荐答案

这很简单,做同样的事情在C#

It's very simple to make same thing in C#

服务器:

var Server = new UdpClient(8888);
var ResponseData = Encoding.ASCII.GetBytes("SomeResponseData");

while (true)
{
    var ClientEp = new IPEndPoint(IPAddress.Any, 0);
    var ClientRequestData = Server.Receive(ref ClientEp);
    var ClientRequest = Encoding.ASCII.GetString(ClientRequestData);

    Console.WriteLine("Recived {0} from {1}, sending response", ClientRequest, ClientEp.Address.ToString());
    Server.Send(ResponseData, ResponseData.Length, ClientEp);
}

客户:

var Client = new UdpClient();
var RequestData = Encoding.ASCII.GetBytes("SomeRequestData");
var ServerEp = new IPEndPoint(IPAddress.Any, 0);

Client.EnableBroadcast = true;
Client.Send(RequestData, RequestData.Length, new IPEndPoint(IPAddress.Broadcast, 8888));

var ServerResponseData = Client.Receive(ref ServerEp);
var ServerResponse = Encoding.ASCII.GetString(ServerResponseData);
Console.WriteLine("Recived {0} from {1}", ServerResponse, ServerEp.Address.ToString());

Client.Close();

这篇关于C#中如何使用UDP广播做网络发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆