Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
12 / 12 / 5
Регистрация: 03.06.2016
Сообщений: 169

Сокеты. Как слушать множество клиентов?

29.01.2018, 19:52. Показов 3710. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Изучая взамодействия клиентов с сервером, вопросов стало больше чем в начале пути, как же они все таки работают?

1) Нашел статейку(https://metanit.com/sharp/net/6.1.php), нутром чую, чтото не то.
Автор пишет
Поскольку удаленный хост может послать данные гораздо большего размера, чем размер буфера data, то для считывания всех данных, как правило используется цикл. Здесь в цикле do..while проверяем наличие данных с помощью свойства stream.DataAvailable
что значит "послать данные гораздо большего размера" насколько я знаю если клиент отправит 10 байт то 10 байт и придет, по крайне мере не больше исключая обрывы.

2) Как слушать множество клиентов, как все таки работает асинхронный метод NetworkStream.BeginRead, что внутри него находится, он создает новый поток и слушает клиента, что врят ли, или он ставит это все дело в пул и поочереди слушает клиентов? Тогда возникает второй вопрос, он это все делает в одном потоке или как?

3) Можно ли сделать ДОПУСТИМ 4 потока и при подключении пользователя, NetworkStream Ставить в некий пул и по очереди смотреть есть ли трафик у данного пользователя, как это делают гуру и им подобные?

4) Нужно ли проверять отправленный трафик от клиента к серверу, допустим посылая на проверку хеш трафика?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2018, 19:52
Ответы с готовыми решениями:

Сокеты: как реализовать взаимодействие сервера с неограниченным количеством клиентов
Здравствуйте, скажите пожалуйста, я тут с Visual Basic'a 6.0 пришёл, и хотел создать на C# программу, для передачи данных, но беда, для...

Как слушать все порты
Не могу дотумкать, что нужно использовать чтобы прослушать все порты компьютера. Есть программка, которая работает криво и передает время...

Как слушать определенный порт с помощью сокета
Создал сокет на прием всех всех IP кадров, которые приходят на порт 1501 с любого IP адреса. Socket receiveSocket = new...

22
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
07.02.2018, 17:20
Студворк — интернет-сервис помощи студентам
MINO, присоединяюсь к вопросу Wolfdp. Это ж как надо было написать код, чтобы асинхронный метод работал в родительском потоке? (кстати, пОтоке. пАтока - это из другой области)
0
12 / 12 / 5
Регистрация: 03.06.2016
Сообщений: 169
07.02.2018, 18:49  [ТС]
Не совсем так выразился, он ждет трафика в том же потоке или же ждет уже в существующем, так как при вызове beginread новых потоков не создается. И про родительский я слово не сказал.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
07.02.2018, 21:22
Цитата Сообщение от MINO Посмотреть сообщение
И про родительский я слово не сказал
а это видимо менты подкинули:
Цитата Сообщение от MINO Посмотреть сообщение
Путем метода проб и ошибок выяснил что BeginRead(buf,0,1,asyncfunc,obj) работает в том же патоке
Цитата Сообщение от MINO Посмотреть сообщение
он ждет трафика в том же потоке или же ждет уже в существующем, так как при вызове beginread новых потоков не создается
При вызове бегинов новые потоки не создаются, эта задача выносится в случайный поток из пула потоков.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2018, 21:22

HttpListener: как слушать запросы локальной сети?
Почему у меня получается зайти на сервер только на ПК на котором запущенна эта программа, мне сказали, что чтобы могли подключаться из...

QT Server. Множество клиентов с разными именами. Как реализовать защиту от одинаковых имён
Приветствую, в общем возникла проблема, опишу как можно подробнее. Есть сервер, создаю я его так: port =...

TCP сокеты и потоки для клиентов
Как держать клиентов по TCP? Вот к примеру я получаю соединение в 1 потоке и передаю чтение в другой поток. Но при 4 потоках мой комп...

Сервер -> множество клиентов
День добрый. Пытаюсь решить задачу на сокеты, всё как всегда. Нужно создать сервер, к которому будет подключаться некоторое количество...

Сырые сокеты: написание промежуточного сервера, через которого подключены клиенты и сервера клиентов
Доброго времени суток! Мне нужно сделать промежуточный сервер через которого подключены клиенты и сервера клиентов. Промежуточный сервер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru