Итак, я пишу этот школьный проект, который должен быть базовой программой чата, состоящей из клиента и сервера. Я пытаюсь работать с закрытым сервером или клиентскими программами.C# Программирование сокетов, закрытие окон
Так что, когда вы нажимаете большую красную 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);
}
Он посылает сообщение серверу, информируя его, что кто-то вход, так что он может удалить пользователя из списка пользователей и т. д.
Проблема возникает, когда сервер закрывается, и пытается отправить сообщение клиентам, сообщив им, что сервер отключился, поэтому клиенты могут информировать пользователей, а затем закрыть ,
Таким образом, сообщение сервера приходит, и клиентская программа уже закрывается, но указанный выше код попытается сообщить серверу ложно о выходе из системы, но к этому времени сервер уже отключен, поэтому будет целый много сообщений об ошибках.
Я предполагаю, что в процедуре, описанной выше, мне понадобилось бы какое-то выражение «если», которое могло бы решить, должен ли код работать, но я понятия не имею, каким он должен быть. Идеи?