我正在写一个学校项目,这个项目是一个由客户端和服务器组成的基本聊天程序。我正在尝试处理其中一种程序(服务器或客户端)关闭的情况。
当您在客户端窗口中按下大红色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);
}
它向服务器发送一条消息,通知其有人退出登录,以便从用户列表中移除该用户等操作。
问题出现在服务器正在关闭时,它尝试向客户端发送一条消息,告知它们服务器已关闭,以便客户端可以通知用户并关闭。
因此,当服务器的消息到达,并且客户端程序即将关闭时,但是上述代码将尝试虚假地通知服务器有用户注销,但此时服务器已经关闭,因此会出现大量错误消息。
我想我需要一种'if'语句来决定该代码是否应该运行,但我不知道应该是什么。有什么想法吗?