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

Socket.EndReceive Method (IAsyncResult, SocketError)

Socket.EndReceive Method (IAsyncResult)

第一个输出时输出错误吗?

编辑:

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

最佳答案

根据文档,两者的行为相同。唯一的区别是执行错误处理时的额外参数。

根据说明


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


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

07-27 23:14