|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
|||||||||||
Передача сервер к выбраному клиенту (многопоточный)08.01.2011, 02:06. Показов 4976. Ответов 20
Метки нет (Все метки)
0
|
|||||||||||
| 08.01.2011, 02:06 | |
|
Ответы с готовыми решениями:
20
многопоточный сервер TCP Многопоточный клиент-сервер Многопоточный TCP сервер |
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
||||||
| 08.01.2011, 23:33 | ||||||
|
Я использовал для данной темы индификатор типо id(счетчик подключений(при конекте +1), или индивидуальный номер подключившегося(после подключения идентификация)) или имя...
Ну и поудобнее использовать список dictionary.... И не особо понял для чего Вы в ConnectionInfo сохраняете поток? 1) Dictionary<string, ConnectionInfo> connect = new dictionary<string, ConnectionInfo> (); 2) Или добавить в клас
1
|
||||||
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
||||||
| 10.01.2011, 00:10 [ТС] | ||||||
|
ConnectionInfo уже существует пишет
Добавлено через 8 часов 48 минут мдя вот я тупанул с просони посмотрел на прогу и не заметил ыыыы Добавлено через 28 минут вот я сделал так но возникло 2 ошибки
2 ошибка Аргумент "1": преобразование типа из "MPserver.serverMN.ConnectionInfo" в "int" невозможно
0
|
||||||
|
19 / 19 / 2
Регистрация: 11.12.2010
Сообщений: 56
|
|||||||||||||
| 10.01.2011, 00:27 | |||||||||||||
|
по сути
так
но я не тестил
1
|
|||||||||||||
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
||||||
| 10.01.2011, 01:35 [ТС] | ||||||
|
всё работает но как же выбрать № id для передачи топу клиенту
0
|
||||||
|
19 / 19 / 2
Регистрация: 11.12.2010
Сообщений: 56
|
|
| 10.01.2011, 01:37 | |
|
Я не пойму вообще смысла задачи. Можно подробное объяснение?
0
|
|
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
|
| 10.01.2011, 01:50 [ТС] | |
|
нада создать видео чат
я создал клиент с чатом и web камерой (проблема с записью изображения в буфер) мне нада через много поточный сервер передать клиенту(клиент вводит № друго) сообщения с чата и видео с камеры
0
|
|
|
19 / 19 / 2
Регистрация: 11.12.2010
Сообщений: 56
|
|
| 10.01.2011, 02:02 | |
|
Вон оно как..Скайп жешь есть. Ну да ладно, забудем про него %) Чат..то бишь одновременно несколько человек могут видеть тебя и соответственно ты их видишь всех?
Если так, то. 1. Передавать видео поток каждому - не рационально. 2. Показывать несколько человек одновременно - не удобно. пусть даже 10 человек - как ты их всех разместишь на форме? 1 - Надо думать в сторону некой буферизации чтоле.. на серверной стороне. Камера тебя снимает и отправляет серверу. Сервер буферизует в файл-поток и по запросу выдает данные из него. а уж все желающие лицезреть тебя запрашивают у сервера этот поток. как-то так. но сильно накручено. ты вообще обдумывал такие детали?
0
|
|
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
|
| 10.01.2011, 02:05 [ТС] | |
|
всё проще
клиент оправляет серверу № другого клиента и у тому клиенту передаётся видео с камеры и 1 клиент может 2му писать если 2ой хочет соеденится то он отправляет серверу № клиента и тд
0
|
|
|
19 / 19 / 2
Регистрация: 11.12.2010
Сообщений: 56
|
|
| 10.01.2011, 02:20 | |
|
ну значит просто при подсоединении клиенту передаётся список всех подключенных клиентов вместе с их номерами, а пользователь уже выбирает нужный номер и далее передается серверу
0
|
|
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
||||||||||||
| 10.01.2011, 20:27 [ТС] | ||||||||||||
|
это пока не нада
потом я может быть сделаю чат для всех и там всё Добавлено через 8 минут Добавлено через 17 часов 53 минуты вот в этой строчке идёт счётчик клиентов
для передачи другому клиенту
0
|
||||||||||||
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
|||||||||||||
| 10.01.2011, 21:28 | |||||||||||||
В пакете в который Вы получили от клиента скажем второй байт у вас отвечает за id клиента и тогда делаем:
Вот у Вас:
0
|
|||||||||||||
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
||
| 10.01.2011, 21:39 [ТС] | ||
|
0
|
||
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
|
| 10.01.2011, 21:48 | |
|
Сколько клиентво подключено это конечно хорошо! Но у Вас, у клиентов, нету индивидуальнах номеров... те они все едины... Выделить конкретного можно по айпи... что согласитесь не удобно...
Впринцепе можно по подключениям делать connect[1]... и тд.... но ктото ушел ктото пришел... это движение,а это не очень удобно...
0
|
|
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
|
| 10.01.2011, 22:20 [ТС] | |
|
я это в полне понимаю но я зхател сделать хатя бы так что бы продолжить работу с сервером
Добавлено через 4 минуты хм я чё то не пойму вот эту строчку и Find что это у меня клиент пока тока передаёт строку без id я рассчитывал что сервер его номер будет передовать
0
|
|
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
|
| 11.01.2011, 01:34 | |
|
Ну что такое финд тебе msdn раскажет...
Я почитал что ты пишешь... но честно не особо выделил, что именнь ты хочешь от клинт серверного приложения... как я понял ты хочешь передовать от одного клиента к другому какую либо информацию.... Те клиент должнен знать о других клиентах (должен быть индификатор на сервере)....
0
|
|
|
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
|
|
| 11.01.2011, 02:10 [ТС] | |
|
пока это не обязательно
допустим клиент знает номер другого и передаёт это серверу а сервер должен его соединить с тем клиентом
0
|
|
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
|||||||||||
| 11.01.2011, 19:02 | |||||||||||
|
сделайте пакет: 1 байт - тип пакета, 1 байт - id, последующие байты - сообщение..
при конекте отправляете пакет вида 0 (скажем 0 тип это индификация) 12 (клиент с айди 12) На сервере создаете Dictionary<int, socket> con = new Dictionary<int, socket>(); при конекте записывае
0
|
|||||||||||
|
19 / 19 / 2
Регистрация: 11.12.2010
Сообщений: 56
|
|
| 12.01.2011, 00:32 | |
|
Прикрепляю архивчик. В нём находится простенькая реализация простенького сервера. Слушает порт, принимает подключения и обрабатывает пакеты. Использует две очереди для хранения пакетов (входящие, исходящие). Один из минусов - на каждого подключенного клиента открывается поток. Это критично при больших кол-вах клиентов. Сори, комменты не писал. Лениво
да там итак всё просто. Поковыряйся, посмотри, может поможет чем.
0
|
|
|
20 / 20 / 2
Регистрация: 27.08.2009
Сообщений: 71
|
|
| 12.01.2011, 01:19 | |
|
ua6lrl
С потоками все просто и понятно... а как реализовывается при большом количестве пользователей??
0
|
|
| 12.01.2011, 01:19 | |
|
Помогаю со студенческими работами здесь
20
Многопоточный сервер: доступ клиентов к данным Как организовать многопоточный сервер через сокеты Решил сделать свой асинхронный многопоточный сервер Многопоточный сервер TCP: разослать сообщения по всем клиентам Передача сообщения с сервера клиенту Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|