Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ObjectDisposedException和SocketException之间有什么区别_C#_Sockets - Fatal编程技术网

C# ObjectDisposedException和SocketException之间有什么区别

C# ObjectDisposedException和SocketException之间有什么区别,c#,sockets,C#,Sockets,我已经查过了定义,但由于我在处理服务器代码,我想知道这里到底发生了什么 到目前为止,我对它的解释是,如果程序之外的东西发生在套接字上,就会发生SocketException;例如,网络中断或客户端关闭其端的连接。这意味着我必须在我这一方呼叫关机和关闭?这就是我应该检测客户端关闭连接的方式吗?当抛出异常时 我解释ObjectDisposedException的方式是,当我从另一个线程或其他东西调用shutdown并关闭该套接字时,它会发生,而我仍然在其他地方使用死套接字 我认为异常名称非常具有指示

我已经查过了定义,但由于我在处理服务器代码,我想知道这里到底发生了什么

到目前为止,我对它的解释是,如果程序之外的东西发生在套接字上,就会发生SocketException;例如,网络中断或客户端关闭其端的连接。这意味着我必须在我这一方呼叫关机和关闭?这就是我应该检测客户端关闭连接的方式吗?当抛出异常时


我解释ObjectDisposedException的方式是,当我从另一个线程或其他东西调用shutdown并关闭该套接字时,它会发生,而我仍然在其他地方使用死套接字

我认为异常名称非常具有指示性,您可能还需要检查文档中是否有抛出这些异常的方法。MSDN文档通常会指出一个方法可能抛出的异常,并且通常可以提供该方法可能选择一个异常而不是另一个异常的更详细的原因。在BeginReceive()调用的回调方法中获取ODE是很正常的。它表示调用没有成功,因为您关闭了套接字,所以应该始终捕获它并立即返回。