【发布时间】:2015-01-27 14:03:24
【问题描述】:
所以,我正在编写这个学校项目,它应该是一些由客户端和服务器组成的基本聊天程序。我正在尝试处理正在关闭的服务器或客户端程序。
因此,当您在客户端窗口中按下大红色 X 时,会发生以下情况:
private void Window_Closing(object sender, CancelEventArgs e)
{
Data msgToSend = new Data();
msgToSend.cmdCommand = Command.Logout;
msgToSend.strName = LoginName;
byte[] b = msgToSend.ToByte();
ClientSocket.Send(b);
}
它向服务器发送一条消息,通知它有人正在注销,因此它可以将用户从用户列表中删除,等等。
问题发生在服务器关闭时,它会尝试向客户端发送消息,通知他们服务器已关闭,以便客户端可以通知用户然后关闭。
所以服务端的消息到了,客户端程序就要关闭了,但是上面的代码会尝试错误的通知服务端注销,但是这个时候服务端已经down了,所以会有一大堆错误消息。
我想我需要在上面的过程中使用某种“if”语句来决定代码是否应该运行,但我不知道它应该是什么。想法?
【问题讨论】: