我想知道是否有人知道一篇关于当程序阻塞套接字发送/接收时可能会引发什么样的异常的好文章或博客文章,更重要的是,它们何时会或不会被抛出的详细信息。MSDN 只是在这种情况下才有用,而且对我来说,找到一篇文章比我自己尝试调用所有这些错误来了解它们更有教育意义。我的意思的一些例子:
ThreadInterruptedException - 仅在阻塞时抛出此异常。因此,如果您正在从套接字读取,我相当肯定它会在尝试阻塞并抛出此异常之前读取整个缓冲区。这是一个手动调用的异常,使用thread.interrupt;我只用它来处理行为不端的套接字,或关闭阻塞的只读线程以避免需要轮询。
SocketException - 通常抛出什么。如果套接字在另一个线程处于读/写过程中时关闭,则会引发此异常。如果在线程被阻塞等待新接收时网络连接丢失,是否会抛出此异常?
我对可能出错的更详细的细节感到好奇,因为我有一个伪异步套接字库,它有相当多的读写操作,有相当多的代码来处理重新连接之类的事情。我想知道任何被阻塞的线程可能出错的一切。