Как остановить отключение всех клиентов от сервера.
Поэтому я создал клиент и сервер howerver всякий раз, когда я запускаю несколько клиентов, а затем закрываю 1 из них, другие клиенты отключаются, как только они пытаются отправить сообщение другим активным клиентам. Это может быть связано с ошибкой внутри моего кода, однако мне все еще не удается найти, в чем заключается проблема.
Всякий раз, когда я закрываю клиент, я вызываю этот код:
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Socket_Client.Close(); }
Ниже приведена ссылка на другой пост, где я показал весь код, который я сейчас использую. Я создал пост на этом сайте, дающий больше информации о моей проблеме. Любая помощь будет очень признательна.
c# - отключение от сервера закрывает все остальные соединения, когда я пытаюсь отправить сообщение подключенному пользователю - переполнение стека[^]
Что я уже пробовал:
Я попытался найти проблему и обнаружил, что в этом методе
private void doChat()
Оба метода :
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); Console.WriteLine("From client - " + clNo + " : " + dataFromClient); rCount = Convert.ToString(requestCount); //ConnUsers.Add(clNo); Program.broadcast(dataFromClient, clNo, true);
И метод улова срабатывает.
Вывод, который я получаю на сервере, который является консольным приложением, например
Сервер слушает
клиент1 зарегистрирован
клиент2 зарегистрирован
client3 зарегистрирован
клиент1 отключен
клиент2 говорит Эй
клиент2 отключен
Как показано в примере, когда 1 клиент отключен, он, кажется, закрывает все клиенты всякий раз, когда я пытаюсь отправить сообщение подключенным клиентам.
Любая помощь будет очень признательна. Я застрял на этой проблеме уже довольно давно, так как я новичок в кодировании с серверным / клиентским приложением.
F-ES Sitecore
Вы, кажется, закрывает соединение с клиентом после того, как вы называете startClient?