更新标准库UDP等
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user