У меня есть два небольших приложения, созданных с использованием C # .net в визуальных студиях (2017).
Одно - сервер , а другое - клиент .Используя System.Net
& System.Net.Sockets
Я заставил сервер принимать запросы на подключение в асинхронном режиме (Несколько клиентов могут отключаться и повторно подключаться в любой момент времени.)
Приложение сервераформа C # .NET Windows, с парой элементов графического интерфейса (например, richtextbox или label.) Клиентское приложение представляет собой консоль C # .NET, на самом деле ничего особенного.
IЯ столкнулся с проблемой, хотя.Внутри серверного приложения я создал файл класса (Server.cs)
, который имеет нестатический класс, который создает сервер и прослушивает сокеты.Методы, которые он использует для прослушивания и получения данных, являются статическими, и, поскольку он обрабатывает клиентов в асинхронном режиме, он использует другой поток.
Я звоню серверу, чтобы начать, запустив это в моем файле формы Server.SetupServer();
Проблема: Внутри Server.cs
есть метод, который получает данные от клиента и пишет окно сообщения, отображающее данные, это отлично работает.Проблема возникает, когда я хочу изменить это и заставить его отображать данные внутри метки вместо (label1)
, это не работает.Я даже не могу выделить элемент label1
внутри файла Server.cs
. (В IntelliSense, кажется, ничего не набирается)
Использование ответов - это ответ, который я часто слышал, и это сработало для меня, когда я сделалфиктивное серверное приложение, которое вместо отдельного файла для класса сервера было просто классом, созданным в самом файле формы.Я мог бы выбрать элемент label1
, используя this.label1.BeginInvoke( //code here )
.
Я полагаю, что это происходит, потому что либо:
- Я не прав, как методы Async Socketработает, и новый поток не создается
- Файл формы и
Server.cs
файл создаются по-разному (форма является экземпляром, а файл сервера отличается) - Или яЯ ужасно ошибаюсь в обоих случаях
Если бы кто-то мог указать мне направление, которое я должен изучить до этого, это было бы здорово.У меня есть пара справочников, которые я буду читать, чтобы получить больше знаний о концепции потоков и делегатов, если это поможет.
Спасибо за чтение моего беспорядка.