摘要:
最近我寫的一個客戶端程序出了問題,即很多用戶同時掉線時(例如在打開很多客戶端的電腦上拔掉網(wǎng)線),有很小的概率服務器會出現(xiàn)異常。異常的Trace顯示,這是對已經(jīng)關閉的TcpClient寫入數(shù)據(jù)時導致的。具體是調用NetworkStream.BeginWrite方法時,出現(xiàn)InvalidOperationException,消息是“寫操作不支持”。而這個異常甚至沒有在BeginWrite的MSDN文檔中出現(xiàn)。我查看了一下代碼,主要原因是很多用戶同時掉線,很可能同時出現(xiàn)心跳停止。在用戶退出時,會向所有其他用戶發(fā)送通知消息。這時,如果一個用戶退出時向其他用戶發(fā)送消息,而那個用戶正好也在退出,其TcpC
閱讀全文