Bu okul projesini, bir istemci ve bir sunucudan oluşan temel sohbet programı olması gerektiğini yazıyorum. Kapatılan sunucu veya istemci programlarını işlemeye çalışıyorum. Eğer Müşteri penceresinde büyük kırmızı X bastığınızdaC# Soket programlama, pencereleri kapatma
Yani, bu olur:
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);
}
Birisi çıkış yapmayı olduğunu bunu bildiren sunucuya bir mesaj gönderir, bu yüzden kullanıcıyı kaldırabilir Kullanıcı listesinden vb.
Sorun, sunucu kapatıldığında ortaya çıkar ve istemciye, sunucunun kapatıldığını bildiren bir ileti göndermeye çalışır, böylece istemciler kullanıcıları bilgilendirebilir ve daha sonra kapatılabilir. .
Bu nedenle sunucunun mesajı geliyor ve istemci programı kapanmak üzeredir, ancak yukarıdaki kod, sunucuyu oturum kapatma hakkında yanlış bilgilendirmeye çalışacaktır, ancak sunucu bu zamana kadar zaten kapalı olduğundan, bir bütün olacak hata mesajları çok.
Yukarıdaki yordamda, kodun çalıştırılıp çalıştırılmayacağına karar verebilecek bir tür “if” ifadesine ihtiyacım var, ama ne olması gerektiğine dair bir fikrim yok. Fikirler?