Доброго времени суток, уважаемые форумчане. Нужна ваша помощь. Имеется TCP_serverEx.
code_35412.txt
Допустим к серверу подключены 3 клиента. Все клиенты одновременно отправляют разные данные. Так вот никак не могу понять, как мне в данный момент времени выбирать от какого клиента я сейчас хочу принимать данные и отправить их другому конкретному клиенту "лично"? Если делать через простой TCP_server, то там все простенько - каждому клиенту свой сервер, свой порт и бери от кого хочешь когда оно требуется, но нужен Ex. Выбирать кому отправлять данные в примере ниже, через точку ##hselect, но вот как выбирать от кого - проблема для меня. Спасибо.
code_35413.txt
Этот топик читают: Гость
Ответов: 117
Рейтинг: 1
|
|||
карма: 0 |
|
Ответов: 1343
Рейтинг: 31
|
|||
[flood]тут что то было...[/flood]
|
|||
карма: 2 |
|
Ответов: 117
Рейтинг: 1
|
|||
Все еще прошу помощи. Перелопатил уже наверно весь поиск
|
|||
карма: 0 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Собирай массив строк который будет распределять данные,... после отправки удаляй операцию из массива и лопать соедующую или если кончились, то жди поступления новых
|
|||
карма: 2 |
|
Ответов: 117
Рейтинг: 1
|
|||
Rysik, не могли бы Вы показать на простейшем примере? Тяжело понимать "на слух", не зная какой компонент применить...
code_35442.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_35442.txt [2.3KB] [181] |
Ответов: 1343
Рейтинг: 31
|
|||
конкретизируй задачу, кто кому и что должен слать?
какое управление предполагается, как твой сервер должен понимать кому слать, рандомно или как? может клиент сам указывает кому слать данные, что собой представляет этот сервер, чат может или что... какой объём данных предполагается передавать? |
|||
карма: 2 |
|
Ответов: 117
Рейтинг: 1
|
|||
Управление и команды серверу, а также кому слать я могу реализовать, я лишь не могу разделить на точке onRead от сервера данные от трех клиентов каждый отдельно. Визуальная схемка ниже, только понятно, что на месте компонета Hub надо как то разделить потоки.
|
|||
карма: 0 |
| ||
файлы: 3 | code_35412.txt [1.1KB] [109], code_35413.txt [2.1KB] [190], code_35445.txt [3KB] [175] |
Ответов: 1343
Рейтинг: 31
|
|||
клиентов будет всегда 3 ? айпи ихние всегда будут статика?
|
|||
карма: 2 |
|
Ответов: 117
Рейтинг: 1
|
|||
Клиентов всегда неизвестное количество и неизвестные ip.
|
|||
карма: 0 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Mr.Tiesto, глянь сюда: [url]forum.html?q=3&t=63600[/url]
|
|||
карма: 26 |
|
Ответов: 117
Рейтинг: 1
|
|||
Netspirit, спасибо, никогда не видел эту тему. Очень интересные компоненты, лишь бы сервер мог работать со множеством клиентов и проводить операции. Попробую их.
------------ Дoбавленo в 14.55: И с новым компонентом не получается в данный момент времени получать данные только от конкретного клиента с конкретным id, приходит всё разом, хотя вроде посылаю на CliendID сервера идентификатор клиента... И хотелось бы знать как компоненту указать тип данных dtString/dtStream, как в классической версии.
|
|||
карма: 0 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Оно не приходит одновременно. Оно приходит попеременно, и на каждое событие точка CurClientID содержит идентификатор клиента.
Mr.Tiesto писал(а): как компоненту указать тип данных dtString/dtStream |
|||
карма: 26 |
| ||
Голосовали: | Mr.Tiesto |
Ответов: 117
Рейтинг: 1
|
|||
Разделить получилось таким способом:
code_35447.txt Передавать планируется текст и иногда картинки, без сохранения в файл. ------------ Дoбавленo в 15.55: Сервер взял новый, клиент со старым компонентом. Текст перевел в поток, слепил с картинкой через StreamPack, на выходе все обратно по полкам. Полет нормальный) ------------ Дoбавленo в 16.03: Спасибо большое Rysik и Netspirit за помощь. |
|||
карма: 0 |
| ||
файлы: 1 | code_35447.txt [2.3KB] [166] |
Ответов: 1343
Рейтинг: 31
|
|||
Mr.Tiesto писал(а): dtStreamперед отправкой, конвертируй stream в str и отсылай как есть |
|||
карма: 2 |
|
Ответов: 117
Рейтинг: 1
|
|||
Rysik, картинка в str тоже уйдет?
|
|||
карма: 0 |
|