更新标准库UDP等

This commit is contained in:
2025-11-11 16:51:37 +08:00
parent 2ebbad09bc
commit bf464b04a6
9 changed files with 479 additions and 607 deletions

View File

@@ -344,13 +344,32 @@ namespace Ramitta.lib
#endregion
// 通过 UDP 发送消息
public static void SendUdpMessage(string _serverIp, int _serverPort,string message)
public static void SendUdpMessage(string _serverIp, int _serverPort, string message)
{
try
{
using (UdpClient udpClient = new UdpClient())
{
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(_serverIp), _serverPort);
IPEndPoint endPoint;
// 真正的自动识别先尝试解析为IP地址失败则当作域名处理
if (IPAddress.TryParse(_serverIp, out IPAddress ipAddress))
{
// 输入的是IP地址
endPoint = new IPEndPoint(ipAddress, _serverPort);
}
else
{
// 输入的是域名进行DNS解析
IPAddress[] addresses = Dns.GetHostAddresses(_serverIp);
if (addresses.Length == 0)
{
Debug.WriteLine($"无法解析域名: {_serverIp}");
return;
}
endPoint = new IPEndPoint(addresses[0], _serverPort);
}
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
udpClient.Send(messageBytes, messageBytes.Length, endPoint);
}