Асинхронные сокеты. Работа из нескольких окон - C#
Формулировка задачи:
Есть клиент и есть сервер.
При запуске, клиент в начале предлагает авторизироваться. Потом если авторизация прошла успешно, окно с авторизацией закрывается и открывается окно с основным телом программы.
У клиента есть класс который отвечает за работу с сервером (соединение, отправка/получение сообщений). В окне с авторизацией создаю экземпляр этого класса:
На форме с авторизацией все работает хорошо.
Когда авторизация прошла успешно, форма с авторизацией закрывается и открывается основная форма. Там по той же схеме создаю экземпляр класса, так же цепляюсь и отправляю сообщение. Но сервер сообщение не получает.
Собственно и вопрос: в чем проблема? Перед закрытием окна с авторизацией нужно как-то порвать соединение? Сокеты позакрывать для нового соединения (из основной формы)? Может как-то можно сделать постоянное соединение которому без разницы с какой формы шлют команды на сервер?
Написаны по примерам которые можно найти здесь и здесь соответственно.
Client Cl = new Client();
Cl.ConnectAsync(ServerIP, port); //цепляемся к серверу
Cl.SendAsync("Hello"); //отправляем сообщениеРешение задачи: «Асинхронные сокеты. Работа из нескольких окон»
textual
Листинг программы
class ClientConnection
{
// ....
public static Client{get;set;};
ClientConnection()
{
Client = new Client();
}
// ....
}