正文

各位編程高手,問題又來啦!!!!!!!

(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 卻捕捉不到。這是咋回事?
[ 打印 ]
[ 編輯 ]
[ 刪除 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.