UdpClient.SendAsync 方法

定义

将 UDP 数据报异步发送到远程主机。

重载

SendAsync(Byte[], Int32)

将 UDP 数据报异步发送到远程主机。

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

将 UDP 数据报异步发送到远程主机。

SendAsync(Byte[], Int32, IPEndPoint)

将 UDP 数据报异步发送到远程主机。

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

将 UDP 数据报异步发送到远程主机。

SendAsync(Byte[], Int32, String, Int32)

将 UDP 数据报异步发送到远程主机。

SendAsync(ReadOnlyMemory<Byte>, String, Int32, CancellationToken)

将 UDP 数据报异步发送到远程主机。

SendAsync(Byte[], Int32)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes);

参数

datagram
Byte[]

一个 Byte 类型的数组,它指定你打算以字节数组形式发送的 UDP 数据报。

bytes
Int32

数据报中的字节数。

返回

返回 Task<TResult>

例外

dgramnull

UdpClient 已建立默认远程主机。

访问套接字时出错。

注解

此重载将数据报发送到在 方法中建立的 Connect 远程主机。 如果在调用此重载之前未调用 Connect ,该方法将引发 SocketException。 如果收到 SocketException,请使用 SocketException.ErrorCode 获取特定的错误代码。 获取此代码后,可以参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。

如果要将数据报发送到其他远程主机,则必须调用 Connect 方法并指定所需的远程主机。 使用其他 SendAsync 任一方法重载将数据报发送到广播地址。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Send(Byte[], Int32)异常。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, System.Threading.CancellationToken cancellationToken = default);

参数

datagram
ReadOnlyMemory<Byte>

类型Byte为 的 ,ReadOnlyMemory<T>指定要发送的 UDP 数据报。

cancellationToken
CancellationToken

要监视取消请求的标记。 默认值为 None。

返回

表示 ValueTask<TResult> 异步发送操作的 。 其 Result 属性的值包含发送的字节数。

例外

访问套接字时出错。

取消令牌已取消。 此异常存储在返回的任务中。

适用于

.NET 9 和其他版本
产品 版本
.NET 6, 7, 8, 9

SendAsync(Byte[], Int32, IPEndPoint)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, System.Net.IPEndPoint? endPoint);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, System.Net.IPEndPoint endPoint);

参数

datagram
Byte[]

一个 Byte 类型的数组,它指定你打算以字节数组形式发送的 UDP 数据报。

bytes
Int32

数据报中的字节数。

endPoint
IPEndPoint

一个 IPEndPoint,表示要将数据报发送到的主机和端口。

返回

返回 Task<TResult>

例外

dgramnull

UdpClient 已建立默认远程主机。

访问套接字时出错。

注解

此方法将数据报发送到指定的终结点。 在调用此重载之前,必须先使用数据报将传送到的远程主机的 IP 地址和端口号创建 IPEndPoint 。 可以通过指定 SocketOptionName.BroadcastAddress 属性 IPEndPoint,将数据报发送到默认广播地址 255.255.255.255。 创建此 IPEndPoint后,将其作为 endPoint 参数传递给此方法。

如果要将数据报发送到任何其他广播地址,请使用 Client 方法获取基础 Socket,并将套接字选项设置为 SocketOptionName.Broadcast。 还可以还原使用 Socket 类。

警告

如果已使用 Connect 方法建立了远程主机,请不要为此方法提供endPoint参数。 如果这样做,此方法将引发 SocketException。 如果收到 SocketException,请使用 SocketException.ErrorCode 获取特定的错误代码。 获取此代码后,可以参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Send(Byte[], Int32, IPEndPoint)异常。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, System.Net.IPEndPoint? endPoint, System.Threading.CancellationToken cancellationToken = default);

参数

datagram
ReadOnlyMemory<Byte>

类型Byte为 的 ,ReadOnlyMemory<T>指定要发送的 UDP 数据报。

endPoint
IPEndPoint

一个 IPEndPoint,表示要将数据报发送到的主机和端口。

cancellationToken
CancellationToken

要监视取消请求的标记。 默认值为 None。

返回

表示 ValueTask<TResult> 异步发送操作的 。 其 Result 属性的值包含发送的字节数。

例外

UdpClient 已建立默认远程主机,并且 endPoint 不是 null

访问套接字时出错。

取消令牌已取消。 此异常存储在返回的任务中。

适用于

.NET 9 和其他版本
产品 版本
.NET 6, 7, 8, 9

SendAsync(Byte[], Int32, String, Int32)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, string? hostname, int port);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, string hostname, int port);

参数

datagram
Byte[]

一个 Byte 类型的数组,它指定你打算以字节数组形式发送的 UDP 数据报。

bytes
Int32

数据报中的字节数。

hostname
String

要向其发送数据报的远程主机的名称。

port
Int32

要与之通信的远程端口号。

返回

返回 Task<TResult>

例外

dgramnull

UdpClient 已建立默认远程主机。

访问套接字时出错。

注解

此方法将数据报发送到 和 port 参数指定的hostname值。 可以通过为参数值指定“255.255.255.255” hostname ,将数据报发送到默认广播地址。

如果要将数据报发送到任何其他广播地址,请使用 Client 方法获取基础 Socket,并将套接字选项设置为 SocketOptionName.Broadcast。 还可以还原使用 Socket 类。

警告

如果已使用 Connect 方法建立了远程主机,请不要向此方法提供主机名或端口号。 如果这样做,此方法将引发 SocketException。 如果收到 SocketException,请使用 SocketException.ErrorCode 获取特定的错误代码。 获取此代码后,可以参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Send(Byte[], Int32, String, Int32)异常。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

SendAsync(ReadOnlyMemory<Byte>, String, Int32, CancellationToken)

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

将 UDP 数据报异步发送到远程主机。

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, string? hostname, int port, System.Threading.CancellationToken cancellationToken = default);

参数

datagram
ReadOnlyMemory<Byte>

类型的 ByteReadOnlyMemory<T>指定要发送的 UDP 数据报。

hostname
String

要向其发送数据报的远程主机的名称。

port
Int32

要与之通信的远程端口号。

cancellationToken
CancellationToken

要监视取消请求的标记。 默认值为 None。

返回

一个 ValueTask<TResult> ,它表示异步发送操作。 其 Result 属性的值包含发送的字节数。

例外

UdpClient 已建立默认远程主机。

访问套接字时出错。

取消令牌已取消。 此异常存储在返回的任务中。

适用于

.NET 9 和其他版本
产品 版本
.NET 6, 7, 8, 9