Tak więc piszę ten szkolny projekt, który powinien być podstawowym programem do czatowania, który składa się z klienta i serwera. Próbuję obsługiwać serwer lub programy klienckie są zamknięte.C# Programowanie gniazd, zamykanie okien
Więc po naciśnięciu duży czerwony X w oknie klienta, to jest to, co się dzieje:
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);
}
wysyła komunikat do serwera informując go, że ktoś loguje się, więc można go usunąć użytkownika z listy użytkowników itp.
Problem pojawia się, gdy serwer jest zamykany, i próbuje wysłać wiadomość do klientów informując, że serwer został zamknięty, aby klienci mogli poinformować użytkowników, a następnie zamknąć .
Pojawia się komunikat serwera, a program klienta wkrótce się zamknie, ale powyższy kod spróbuje poinformować serwer fałszywie o wylogowaniu, ale serwer jest już wyłączony, więc będzie cały czas wiele komunikatów o błędach.
Sądzę, że potrzebowałbym pewnego rodzaju instrukcji "if" w powyższej procedurze, która mogłaby zdecydować, czy kod powinien działać, ale nie mam pojęcia, co to powinno być. Pomysły?