C# udp通讯 多网卡/虚拟机指定某个网卡通讯
LocalIP = GetAllAdaptersIPAddress();
if (udpClient == null) { udpClient = new UdpClient(new IPEndPoint(LocalIP, 5687)); } Task.Run(() => { try { //接收广播while (true) { IPEndPoint AnyIP = new IPEndPoint(IPAddress.Any, 0); byte[] data = udpClient.Receive(ref AnyIP); } } catch (Exception e) { ShowMsg(e.Message); LogError(e.Message); } Thread.Sleep(10000); }); Task.Run(() => { try {
IPEndPoint broadcastEP = new IPEndPoint(IPAddress.Broadcast, 5687);
while (true) // 无限循环发送 { // 发送广播 udpClient.SendAsync(sendBytes1, sendBytes1.Length, broadcastEP); Thread.Sleep(2000); }
} catch (Exception e) { ShowMsg(e.Message); LogError(e.Message); } Thread.Sleep(10000); });
//获取本机IP
public static IPAddress GetAllAdaptersIPAddress()
{
foreach (var adapter in NetworkInterface.GetAllNetworkInterfaces())
{
if (adapter.Description.Contains("Loopback")) continue;//跳过 环回地址127.0.0.1
if (adapter.OperationalStatus == OperationalStatus.Up) //连接上的网口
{
var addresses = adapter.GetIPProperties().UnicastAddresses;
foreach (var ip in addresses)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
if(ip.Address.ToString().Contains("192.168.8"))
{
return ip.Address;
}
}
}
}
}
return null;
}
if (udpClient == null){ udpClient = new UdpClient(new IPEndPoint(LocalIP, 5687));}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具