C#窗体程序,UDP发送数据到多个目标IP地址和端口号的完整代码
时间: 2024-09-20 08:01:41 浏览: 51
在C#中,创建一个窗体程序来同时向多个目标IP地址和端口发送UDP数据,通常涉及创建一个UdpClient实例并对其进行循环处理。以下是一个基础的示例代码,假设你已经有一个包含多个目标地址和端口的列表:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Collections.Generic;
public partial class MainForm : Form
{
private List<(string IP, int Port)> targets = GetTargetList(); // 获取目标列表的方法
private UdpClient udpClient;
private byte[] buffer = Encoding.UTF8.GetBytes("你好,这是来自C#窗口程序的数据"); // 要发送的数据
public MainForm()
{
InitializeComponent();
udpClient = new UdpClient(); // 初始化UdpClient
}
private void btnSend_Click(object sender, EventArgs e)
{
foreach ((string IP, int Port) target in targets)
{
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(target.IP), target.Port);
try
{
udpClient.Send(buffer, buffer.Length, endPoint);
MessageBox.Show($"已成功发送数据到 {target.IP}:{target.Port}");
}
catch (SocketException ex)
{
MessageBox.Show($"发送到 {target.IP}:{target.Port} 时发生错误: {ex.Message}");
}
}
}
private List<(string IP, int Port)> GetTargetList() // 请替换为你实际获取目标列表的函数
{
return new List<(string IP, int Port)>
{
("192.168.1.1", 1234),
("192.168.1.2", 5678),
// 添加更多目标地址和端口
};
}
}
// 若要在窗体程序中调用,确保MainForm是你窗体类名
public static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
```
在这个示例中,当点击按钮`btnSend`时,程序会遍历目标列表,尝试将数据发送到每个指定的IP地址和端口。如果有任何SocketException异常发生,将会显示错误信息。
阅读全文