|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|||||||||||
Многопоточный клиент-сервер14.05.2010, 20:51. Показов 14571. Ответов 14
Метки нет (Все метки)
начал разбираться с сетями, и столкнулся с такой проблемой... когда 1 клиент и 1 сервер, то тут все понятно... а вот когда один ко многим (1 сервер и много клиентов) возникают проблемы... не как не могу понять следующее, я на сервере жду подключений
1) как создать потоки, что бы организовать еще и передачу и прием сообщений? ведь пока сервер слушает порт, он не может нечего делать другова) 2) как вообще лучше организовать передачу сообщений? должна быть функция как один к одному между клиентами, так и отправка сервисных сообщений от сервера ко всем клиентам 3) как понять какой клиент передал данные и кому передал? пытался каждое подключение занести в список, но получается довольно сложно определять от кого и кому пишешь... можно ли передать какой то индификатор или параметр клиента, что бы опредлять от кого и кому посылаешь, я имею ввиду при создании подключения) в заранее спасибо!
0
|
|||||||||||
| 14.05.2010, 20:51 | |
|
Ответы с готовыми решениями:
14
многопоточный сервер TCP Многопоточный TCP сервер Передача сервер к выбраному клиенту (многопоточный) |
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|
| 14.05.2010, 21:47 | |
|
1
|
|
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|
| 14.05.2010, 22:33 [ТС] | |
|
0
|
|
|
87 / 87 / 26
Регистрация: 04.01.2010
Сообщений: 270
|
||
| 15.05.2010, 02:39 | ||
|
1
|
||
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|
| 15.05.2010, 16:53 [ТС] | |
|
ну а вот на моем примере, как многопоточность сделать? создать еще один потом для отправки и получения?
0
|
|
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 15.05.2010, 20:25 | |
|
1) после того как кто-то подключился создавай новый поток и уже в нем делай все обработки, AcceptTcpClient как раз возвращает новый объект подключения, вот его бери и мучай в отдельных потоках, а сервер будет дальше ждать новых подключений
а ко второму и третьему вопросам сам присоединяюсь ))) особенно интересует рассылка "один ко всем"
0
|
|
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
||
| 16.05.2010, 01:49 | ||
|
Общая схема сервера: Создаете класс Client, который будет хранить информацию о каждом клиенте, например сокет и идентификатор. Сервер бесконечно ждет подключения нового клиента, при подключении выделяет его в отдельный поток (явно, либо с помощью BeginReceive и подобных и обрабатываете через функции обратного вызова), и добавляет в список. Создаете методы, например отправка сообщения конкретному клиенту (по идентификатору) или всем. Массовая рассылка возможна также через широковещательный сокет. В данной схеме клиенту друг у друге ничего не знают, поэтому если хотите послать сообщение от одного клиента другому, надо слать сообщение с указанным адресатом серверу, а сервер отправит адресату
1
|
||
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
||||
| 16.05.2010, 15:02 [ТС] | ||||
|
0
|
||||
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
||||
| 16.05.2010, 15:10 | ||||
|
0
|
||||
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
||||||
| 16.05.2010, 22:11 [ТС] | ||||||
|
в общем не получается что то...
пытался сделать так Код
что то не получилось... что не так? как правильно то сделать?
0
|
||||||
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|
| 18.05.2010, 23:29 [ТС] | |
|
ну подскажите кто нить, как потоки тут создать?
0
|
|
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|||||||||||
| 21.05.2010, 21:38 [ТС] | |||||||||||
|
подскажите в чем проблема, все написал, кое как все работает... но вот с удаленной машины подключаться не хочет, в чем дело? вроде нече не блочит, но выдает что сервер не откликнулся
1
|
|||||||||||
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 21.05.2010, 22:18 | |
|
а IP адрес-то выделенный?
т.е это адрес чисто компа где запущен сервер, или адрес шлюза через который сидит пол района ?))
0
|
|
|
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
|
|
| 21.05.2010, 22:35 [ТС] | |
|
статически, от провайдера...
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 4
|
|
| 09.02.2011, 15:01 | |
|
ммм тут остался открытым вопрос о передаче данных полученных в потоке от сервера в какой нить буфер основного потока, а самое главное как отловить момент когда данные получены, сохранены и их можно брать.
грубо говоря, если сервер должен передать на запрос клиента какие то данные, а соединение с сервером идёт в отдельном потоке, как потом полученные данные взять из потока и работать с ними в главном потоке, ну например вывести в текстбокс, или отпарсить и делать что то другое, например дерево в треевиве построить, да это не суть как важно, важно как запустить парсер по событию завершению работы соединения, какое событие ловить.
0
|
|
| 09.02.2011, 15:01 | |
|
Помогаю со студенческими работами здесь
15
Многопоточный сервер: доступ клиентов к данным Как организовать многопоточный сервер через сокеты Решил сделать свой асинхронный многопоточный сервер Многопоточный сервер TCP: разослать сообщения по всем клиентам Клиент-сервер: Как определить, что клиент отключился? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|