Асинхронные сокеты. Работа из нескольких окон - C#

Узнай цену своей работы

Формулировка задачи:

Есть клиент и есть сервер.
Написаны по примерам которые можно найти здесь и здесь соответственно.
При запуске, клиент в начале предлагает авторизироваться. Потом если авторизация прошла успешно, окно с авторизацией закрывается и открывается окно с основным телом программы. У клиента есть класс который отвечает за работу с сервером (соединение, отправка/получение сообщений). В окне с авторизацией создаю экземпляр этого класса:
Client Cl = new Client();
Cl.ConnectAsync(ServerIP, port); //цепляемся к серверу
Cl.SendAsync("Hello"); //отправляем сообщение
На форме с авторизацией все работает хорошо. Когда авторизация прошла успешно, форма с авторизацией закрывается и открывается основная форма. Там по той же схеме создаю экземпляр класса, так же цепляюсь и отправляю сообщение. Но сервер сообщение не получает. Собственно и вопрос: в чем проблема? Перед закрытием окна с авторизацией нужно как-то порвать соединение? Сокеты позакрывать для нового соединения (из основной формы)? Может как-то можно сделать постоянное соединение которому без разницы с какой формы шлют команды на сервер?

Решение задачи: «Асинхронные сокеты. Работа из нескольких окон»

textual
Листинг программы
class ClientConnection
{
    // ....
    public static Client{get;set;};
    
    ClientConnection()
    {
        Client = new Client();
    }
    // ....
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы