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