各位编程高手,问题又来啦!!!!!!!
(2008-08-20 21:54:13)
下一个
C#, 一个 client/server 程序, client 端用以下方法 send message.
private void Send(Socket client, String data)
{
// Convert the string data to byte data using Unicode encoding.
byte[] byteData = Encoding.Unicode.GetBytes(data);
try
{
// Begin sending the data to the remote device.
client.BeginSend(byteData, 0, byteData.Length, 0,
new AsyncCallback(SendCallback), client);
}
catch (SocketException se)
{
MessageBox.Show(se.ErrorCode + : + se.Message);
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
一切正常。 问题是,一旦server 非正常断开了。client.BeginSend 就会 throw 一个
异常 System.ObjectDisposedException: Cannot access a disposed object.
可是,这个exception , catch 却捕捉不到。这是咋回事?