各位編程高手,問題又來啦!!!!!!!
(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 卻捕捉不到。這是咋回事?