Переподключение при потере соединения с хостом с использованием TCP — C#

#c# #tcp

#c# #tcp

Вопрос:

Если хост переходит в автономный режим, они теряют всех подключенных клиентов и не подключаются автоматически из-за моего перерыва; в коде. Если я не выполняю разрыв; в коде он массово отправляет спам одному и тому же пользователю, подключенному снова и снова. В принципе, если хост выходит из строя в середине сеанса, я хочу, чтобы клиенты автоматически переподключались, как только хост снова заработает.

Вот мой код

 public static void tryConnect()
{
while (true)
 {
  try
         {
    TcpClient client = new TcpClient();
            client.Connect(IPAddress.Parse(host), port);
            NetworkStream stream = client.GetStream();
    string user = Environment.UserName;
    byte[] userByte = Encoding.ASCII.GetBytes(user);
    stream.Write(userByte,0,userByte.Length);
    stream.Close();
    client.Close();
    break;
      }
    catch
      {
    Thread.Sleep(10000);
      }
}
  

Ответ №1:

Вы должны создать bool из этой функции, которая содержит информацию о том, подключен ли клиент или нет, если попытка не завершится неудачей, sholud установит для нее значение true или вернет true для функции, вызывающей TryConnect, чтобы тот, кто может вызвать tryConect, знал, что вы подключены, и вы больше не будетенужно попробовать подключиться.

Если вы просто тестируете соединение, просто не пишите в чате, что такие данные возвращаются. Однако я не уверен, что правильно понял ваш вопрос.