正文

各位编程高手,问题又来啦!!!!!!!

(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)
评论
目前还没有任何评论
登录后才可评论.