Socket.EndSendTo(IAsyncResult) 方法

定义

结束挂起的、向指定位置进行的异步发送。

public:
 int EndSendTo(IAsyncResult ^ asyncResult);
public int EndSendTo (IAsyncResult asyncResult);
member this.EndSendTo : IAsyncResult -> int
Public Function EndSendTo (asyncResult As IAsyncResult) As Integer

参数

asyncResult
IAsyncResult

IAsyncResult,它存储此异步操作的状态信息以及所有用户定义的数据。

返回

如果成功,则返回已发送的字节数;否则会返回无效 Socket 错误。

例外

asyncResultnull

先前为异步发送已调用过 EndSendTo(IAsyncResult)

尝试访问套接字时出错。

- 或 -

仅限 .NET 7+: Socket 已关闭。

仅.NET Framework、.NET Core 和 .NET 5-6:Socket已关闭。

注解

重要

这是一个兼容性 API。 不建议使用 APM (Begin*End*) 方法进行新开发。 请改用 Task基于 的等效项。

EndSendTo 完成由 BeginSendTo启动的操作。 需要传递 IAsyncResult 由匹配 BeginSendTo 调用创建的 。

如果使用无连接协议, EndSendTo 将阻止,直到发送数据报。 如果使用面向连接的协议,将阻止, EndSendTo 直到发送请求的字节数。 无法保证发送的数据会立即出现在网络上。 为了提高网络效率,基础系统可能会延迟传输,直到收集大量传出数据。 方法的 BeginSendTo 成功完成意味着基础系统有空间来缓冲网络发送的数据。

注意

如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

适用于