powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdTCPServer отправить сообщение клиенту
25 сообщений из 116, страница 1 из 5
IdTCPServer отправить сообщение клиенту
    #40033174
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть IdTCPServer.
Нужно отправить сообщение конкретному клиенту из списка подключённых.
Есть его IP адрес и порт.

Как?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033179
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73,
никак. Клиент должен прислать запрос.
Меняй технологию.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033183
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73Как?

Ищешь его в Threads, вызываешь Connection->WriteBuffer.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033222
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Mizer73Как?

Ищешь его в Threads, вызываешь Connection->WriteBuffer.


вопросов меньше не стало, хотя понятно, куда копать
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033224
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* клиент шлет запрос
* ... сервер его получает и блокирует клиента
* когда происходит нужное событие на сервере
* ... сервер шлет ответ клиенту
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033225
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Arefiev, не подходит. Клиент шлет разные данные онлайн. И на эти данные надо среагировать
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033226
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Mizer73Как?

Ищешь его в Threads, вызываешь Connection->WriteBuffer.


а через перебор
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
TList *ClientsList = IdTCPServer1->Contexts->LockList();
		try {
			for (int i = 0; i < ClientsList->Count; i++) {
			 //   Server.Threads[].Connection.Socket чем-то не устраивает?

				MyContext = (TIdContext*) ClientsList->Items[i];
				MyContext->Connection->IOHandler->WriteLn("Message for all the clients");
			}
			__finally {
				IdTCPServer1->Contexts->UnlockList();
			}
		}


не найти?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033243
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Dmitry Arefiev, не подходит. Клиент шлет разные данные онлайн. И на эти данные надо среагировать

и ?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033244
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Arefiev
Mizer73
Dmitry Arefiev, не подходит. Клиент шлет разные данные онлайн. И на эти данные надо среагировать

и ?

что значит "блокирует"?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033250
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработчик запроса на сервере вызывает TEvent.WaitFor и ... ждет чего-то там ...
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033253
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry ArefievОбработчик запроса на сервере вызывает TEvent.WaitFor и ... ждет чего-то там ...

Это совершенно никому не мешает посылать данные в сокет. С любой стороны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033258
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73,

а тебе обязательно эти инди использовать?
Есть готовые технологие, где асинхронная связь является просто фичей. Например, WebSockets...
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033260
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Dmitry ArefievОбработчик запроса на сервере вызывает TEvent.WaitFor и ... ждет чего-то там ...

Это совершенно никому не мешает посылать данные в сокет. С любой стороны.

но следующий приход данных будет опять создавать ожидание
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033265
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
Dimitry Sibiryakov

пропущено...

Это совершенно никому не мешает посылать данные в сокет. С любой стороны.

но следующий приход данных будет опять создавать ожидание

Посмотри тут: http://flibustahezeous3.onion/b/255517/read#t66 - глава 2, "Сокеты Windows". Только там не глупая инди, а сокеты Windows.
Есть и примеры реализации, в т.ч. и асинхронной связи между клеинтами и сервером.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033310
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

что за ссылка, не открывается ни просто, ни через VPN. Это не вот это ли вот?
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1060
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033312
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s62,

это ссылка для Tor Browser.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033315
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

понятно.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033316
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итого, можно через перебор узнавать клиента с требуемым IP и слать ему послание.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TList *ClientsList = IdTCPServer1->Contexts->LockList();
	try {
		for (int i = 0; i < ClientsList->Count; i++) {
			MyContext = (TIdContext*) ClientsList->Items[i];
			MyContext->Connection->IOHandler->WriteLn("Message for all the clients");
           ......................................
...................



по крайней мере, выборочно отключать получилось. Попробую отсылать сообщение.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033318
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Следующий вопрос будет про клиента. :)
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033319
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понаворотят обёрток, а потом ищут как делать тривиальные вещи...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033333
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас в комьюнити организовалась группа по интересам
Мы пилим сетевую библиотеку. На примере ТС представьте, что будет если клиентов несколько тысяч
Если у кого-то есть желание поучаствовать - пишите мне в личку
Пока нас 4 человека. Завели проект в гитлабе, юзаем джиру и конфлюенс. Договорились о встречах 3 раза в неделю, микро скрам.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033385
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
У нас в комьюнити организовалась группа по интересам
Мы пилим сетевую библиотеку. На примере ТС представьте, что будет если клиентов несколько тысяч
Если у кого-то есть желание поучаствовать - пишите мне в личку
Пока нас 4 человека. Завели проект в гитлабе, юзаем джиру и конфлюенс. Договорились о встречах 3 раза в неделю, микро скрам.


Зачем это нужно? Чем имеющиеся не устраивают?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033392
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
DmSer
SOFT FOR YOU
У нас в комьюнити организовалась группа по интересам
Мы пилим сетевую библиотеку. На примере ТС представьте, что будет если клиентов несколько тысяч
Если у кого-то есть желание поучаствовать - пишите мне в личку
Пока нас 4 человека. Завели проект в гитлабе, юзаем джиру и конфлюенс. Договорились о встречах 3 раза в неделю, микро скрам.


Зачем это нужно? Чем имеющиеся не устраивают?


она должна быть супер-мега-быстрая, самая быстрая в мире !
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033401
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator
DmSer
пропущено...


Зачем это нужно? Чем имеющиеся не устраивают?


она должна быть супер-мега-быстрая, самая быстрая в мире !


Самые быстрые - только асинхронные. Такие уже есть, например Overbyte ICS.
Несмотря на это, большинство один хрен использует Indy10, ибо проще, кроссплатформенно, не нужно бороться с Callback hell или изобретать машины состояний.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033402
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

Я потратил множество времени, чтобы ознакомиться с текущими решениями
Смотрел и Synopse, и ICS, и TMS, и RTC. И много чего другого
Тот же ICS он только под винду
Асинхронных сокетов нормальных нет почти нигде
С веб сокетами тоже труба
В Indy на каждый коннект создаётся поток. Будет на серваке 1000 соединений и всё - труба

К нам в сообщество пришёл чувак, замерял тест ноды и TCP сервера Delphi
Оказалось, нода в 500 раз быстрее. Что-то типа такого

Для высокоуровневого маршаллинга нет ничего кроме SuperObject
Но он только JSON и далеко не самый быстрый
...
Рейтинг: 0 / 0
25 сообщений из 116, страница 1 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdTCPServer отправить сообщение клиенту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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