2个Socket.EndReceive函数之间的区别

时间:2016-10-11 00:43:50

标签: c# sockets

我无法从文档中看出这两者之间的区别是什么:

Socket.EndReceive Method (IAsyncResult, SocketError)

Socket.EndReceive Method (IAsyncResult)

第一个输出错误而第二个输出错误吗?

修改

更具体一点:如果抛出错误,输出参数将是假的。这表明SocketError版本不会抛出错误。然而它说它抛出相同的错误。这是否意味着它会抛出所有相同的错误?也许有错误发生但不会被抛出。也许您需要使用此功能来获取所有错误。我需要两组错误处理 - 一个用于throw,一个用于输出参数?一种功能优于另一种吗?

1 个答案:

答案 0 :(得分:0)

基于文档,它们都表现相同。唯一的区别是进行错误处理时的额外参数。

基于笔记

  

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

您似乎可以使用Socket.EndReceive Method (IAsyncResult, SocketError)上作为参考传递的SocketError enum对象来获取有关出错的信息,而无需检查 Windows套接字版本2 API错误代码文档