我有一个令人困惑的问题,我无法解决它。我有几行代码,在某些时候,Send
函数会抛出System.Net.Sockets.SocketException
。但是,即使try具有catch块,它也不会捕获异常并继续正常流程。当我尝试运行需要抛出相同异常的情况时,catch会很好地捕获它。
我尝试过的事情:
以下是代码,在某些时候,服务器的连接关闭,c
Socket断开连接。它返回System.Net.Sockets.SocketException
,但是下面的catch不能捕获它。
try
{
// Some code here . . .
c.Send(clientData);
Print("Started uploading the file " + uploadFilename + ".");
upBox.Text = "";
Print("Finished uploading the file " + uploadFilename + ".");
}
catch (System.Net.Sockets.SocketException)
{
Print("You are disconnected from server!");
}
答案 0 :(得分:1)
你没有得到例外的原因...... ......是不是没有例外!
TCP / IP本身不一定会“注意到”断开连接......除非您明确尝试写入已关闭的套接字。
绝对查看Beej的网络编程指南:
另见: