powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP-сервер. Класс TcpListener
8 сообщений из 8, страница 1 из 1
TCP-сервер. Класс TcpListener
    #39875549
AnWa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, прошу подсказать, как возможно реализовать проверку наличия соединеия до перехода к методу AcceptTcpClient()?

1) Создал сервер
2) Запускаю сервер (слушаю порт). На этом этапе уже можно подключиться через telnet
3) Если кто-то подключился, то создаю клиента
4) Если нет, то не жду. А то программа висит, пока кто-нибудь не подключится. Если ли у TcpListener свойсво по которому можно понять, что кто-то уже подключился, до выполнения AcceptTcpClient?

Код: c#
1.
2.
3.
1)TcpListener server = TcpListener(IPAddress.Any, 8888);
2)server.Start();
3)TcpClient client = server.AcceptTcpClient();
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875559
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875608
AnWa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,

спасибо, почему то через этот метод выдавало ошибку, реализовал через Pending():

Код: c#
1.
2.
3.
4.
5.
if (server.Pending())
   {
    client = server.AcceptTcpClient();
    stream = client.GetStream();
    }



а можете подсказать как мне отвечать все клиентам, а не только последнему?

Код: c#
1.
2.
foreach (тип имя_переменной_цикла in коллекция) 
    stream.Write(data, 0, data.Length);
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875613
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnWaспасибо, почему то через этот метод выдавало ошибку, реализовал через Pending():

Как ты AcceptTcpClientAsync использовал?

PS. Если у тебя что-то выдает непонятную ошибку, то сначала надо попробовать разобраться, почему это происходит, прежде чем кидаться использовать что-то другое, потому что так, обычно, все кривые костыли и рождаются на свет.
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875617
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnWa,

Честно говоря, мне еще твоя задумка не сильно понятна. Обычный паттерн работы tcp сервера это "1) висим пока не подключится клиент, 2) форкаем отдельный поток для работы с этим клиентом, 3) возвращаемся к п.1" Если нужно еще параллельно что-то делать, пока ожидаем подключения клиента, то надо просто сам tcp-сервер запустить в отдельном потоке, вот и все.
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875756
AnWa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,

Задача открыть TCP-порт и отправлять туда одинаковые данные всем клиентам, потока получается делать это только одному клиенту.
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39875761
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnWaЗадача открыть TCP-порт и отправлять туда одинаковые данные всем клиентам, потока получается делать это только одному клиенту.
Пjчему бы просто не использовать для этого готовый SignalR?
...
Рейтинг: 0 / 0
TCP-сервер. Класс TcpListener
    #39879344
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnWafkthat,

Задача открыть TCP-порт и отправлять туда одинаковые данные всем клиентам, потока получается делать это только одному клиенту.

Ну так отправлять multicast
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP-сервер. Класс TcpListener
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]