Socket.EndReceiveMessageFrom 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
结束挂起的、从特定终结点进行异步读取。 此方法还显示有关数据包而不是 EndReceiveFrom(IAsyncResult, EndPoint) 的更多信息。
public:
int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
参数
- asyncResult
- IAsyncResult
IAsyncResult,它存储此异步操作的状态信息以及所有用户定义的数据。
- socketFlags
- SocketFlags
所接收数据包的 SocketFlags 值的按位组合。
- ipPacketInformation
- IPPacketInformation
所接收数据包的 IPAddress 和接口。
返回
如果成功,则返回已接收的字节数。 如果不成功,则返回 0。
例外
对 BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) 方法的调用未返回 asyncResult
。
仅.NET Framework、.NET Core 和 .NET 5-6:Socket已关闭。
注解
重要
这是一个兼容性 API。 不建议使用 APM (Begin*
和 End*
) 方法进行新开发。 请改用 Task
基于 的等效项。
EndReceiveFrom 完成由 BeginReceiveFrom启动的操作。 需要传递 IAsyncResult 由匹配 BeginReceiveFrom 调用创建的 。 EndReceiveFrom 将阻止调用线程,直到操作完成。
检查 ipPacketInformation
是否需要知道数据报是使用单播、多播还是广播地址发送的。
注意
如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。