![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIdCmdTCPServer
Zalm © (2009-08-31 13:14:00)Здравствуйте, как у TIdCmdTCPServer можно всем клиентам разослать сообщение? Надо например каждому отослать команду. Это должно быть естественно в цикле, только я не знаю как и где. У TServerSocket было проще всё, ну или понятней.
1)Вот например у меня есть кнопка на сервере, как сделать чтоб ы при нажатии на кнопку каждому подключению что-то отправить, и что бы узнать его адрес там и тд?
2) Как узнать ip и handler подключения? и в каком евенте... если в OnConnect то я не опнля как...
3) Как вне событий отправить текст на подключение с известным адресом\обработчкиом?
Буду очень благодарен за помощь.
Zalm (2009-09-14 13:33:00) [61]какая может быть ошибка предположительно? как я полнял сервер работает нормально, если пара не полная, то он и через час ответит что не кому отсылать что-то, его не надо "оживлять", а вот с клиентом похоже проблема.
Может время ReadTimeout поменять? там -1 стоит
Сергей М. (2009-09-14 08:21:00) [62]У тебя ошибка в программе.
Zalm (2009-09-12 02:58:00) [63]такая не приятная ситуация у меня наблюдается...
дело такое, подключаюсь я с телефона к своему серверу, и клиент подключаю с компа.. если какое-то, именно какое-то не определенное (время не определял) время ничего не слать, то спустя "ЭТО ВРЕМЯ" если что-то написать первая команда просто где-то теряется, а если сразу же за этой командой отправить что-то то всё опять хорошо... словно эта потерянная команда оживляет сервер или клиент парный... вы знаете почему такое может быть?
детального анализа еще не делал где теряется команда и куда доходит.. сначала думал спросить у вас с чем это может быть связано..
может TerminateWaitTime 5000 на сервере дает такой эффект? или надо сделать какой-то "keep alife"?
Zalm (2009-09-11 17:37:00) [64]аа... Спасибо Сергей
Сергей М. (2009-09-11 08:29:00) [65]Тотальный подсчет трафика не предусмотрен.
Однако есть события TIdTCPConnection.OnWork , TIdIOHandler.OnWork - их можно приспособить для тотального подсчета прикладноготрафика.
Zalm (2009-09-11 02:26:00) [66]А TidTCPServer имеет какие-то функции\процедуры для подсчета входящего\исходящего трафика? или только руками можно посчитать?
Подскажите пожалуйста)
Zalm (2009-09-10 20:25:00) [67]Сергей что ж вы злой такой?)
Спасибо большое Пятачок)
Сергей М. (2009-09-07 19:31:00) [68]
> я .. писал ..
Я понимаю, что ты писатель, а не читатель.
> не думаю что это мне не принесет никаких результатов
Ты вообще не думаешь. Вероятно, не спрособен думать.
Иначе давным бы давно реализовал кучу данных тебе подсказок.
> Медвежонок Пятачок © (07.09.09 19:00) [82]
Зря.
Клиент скорее мертв.
К тому он ханделЯми озабочен, а ты ему пир:порт)
Медвежонок Пятачок (2009-09-07 19:00:00) [69]procedure TForm1.Button1Click(Sender: TObject);
var List : TList; i : integer;
begin
try
List := IdCmdTCPServer1.Contexts.LockList;
for i := 0 to Pred(List.Count) do
with TIdContext(List[i]) do
begin
if (Connection.Socket.Binding.PeerIP = '1.2.3.4') and (Connection.Socket.Binding.PeerPort = 1234) then
TIdContext(List[i]).Connection.Socket.Write('привет');
end;
finally
IdCmdTCPServer1.Contexts.UnlockList;
end;
end;
Zalm (2009-09-07 18:44:00) [70]
> Это тебе "сервер ася" сказал ?Или ты изучил документацию
> ?
ну нет, я в начале второго курса писал подобие аси... в итоге всё работало нормально. всё передавалось и принималось.
> А что ты хотел увидеть в кач-ве ответа на вопрос ?Код ?Он
> тебе не поможет, уверяю тебя.Ты нишиша в нем не поймешь.
> Даже если ты сдуешь его "один в один", он у тебя работать
> не будет.
почему это? это голословно))) не думаю что это мне не принесет никаких результатов... так что думаю вы ошибаетесь
Сергей М. (2009-09-07 18:38:00) [71]
> Zalm © (07.09.09 17:51) [72]
А что ты хотел видеть в кач-ве ответа на этот вопрос ?
> а это что делает?
"Это" возвращает binding-структуру с интересующим значением поля handle.
> та же структура что и у сервера аси, получил передал сразу
> вот и всё
Это тебе "сервер ася" сказал ?
Или ты изучил документацию ?
> вот что сложного ответить на вопрос как
А что ты хотел увидеть в кач-ве ответа на вопрос ?
Код ?
Он тебе не поможет, уверяю тебя.
Ты нишиша в нем не поймешь.
Даже если ты сдуешь его "один в один", он у тебя работать не будет.
Zalm (2009-09-07 18:34:00) [72]ну а что там выкручиться, сложности никакой.
например синтаксис для собщения MSG_<сообщение>, а для инфы INFO_<инфа>, и какой тут напряг? придет себе сообщение, будет оно как сообщение, а инфу по-прежнему ждем
Медвежонок Пятачок (2009-09-07 18:29:00) [73]Хотя этот вопрос лишний.
Ты попробуй сначала выкрутится из ситуации, что описана у меня в [75].
Когда в ответ на запрос информации о контакте приходит не инфа о контакте, а "Превет Медвет".
Медвежонок Пятачок (2009-09-07 18:27:00) [74]ася что ли сидит и спрашивает у сервера есть ли для неё сообщения?
Ты лучше спроси как она вообще получает сообщения ничего не запрашивая (якобы) и ничего не читая (якобы).
Zalm (2009-09-07 18:23:00) [75]ася что ли сидит и спрашивает у сервера есть ли для неё сообщения?
вобще один товарищ посоветровал не возится с таким сервером "посредником" а связать компы не имеющие выделенных адресов через VPN. Тока я еще не совсем дочитал что это такое... так что пойду читать, мб и не нужен будет такой сервер...
Медвежонок Пятачок (2009-09-07 18:14:00) [76]Вот я клиент твоей аси.
И Сергей М. тоже клиент.
Я нажимаю кнопку и запрашиваю инфо о контакте Сергея М.
В это время он мне шлет сообщение "Превет Медвет"
Сервер его получает и тут же сразу же мне его шлет.
А я в это время отправил запрос о его профиле и жду его.
А в ответ мне вместо данных его профиля приходит "Превет Медвет".
Я (точнее твой чудо-клиент аси) при этом в полной уверенности что:
1. Получил не сообщение, а инфу о профиле Сергея М
2. Мне не пришло текстовое сообющение от Сергея М
дальше разжевывать надо?
Медвежонок Пятачок (2009-09-07 18:10:00) [77]получил передал сразу вот и всё...
не сразу, а только по запросу того, кому это предназначалось.
Zalm (2009-09-07 18:07:00) [78]что вобще сложного в том сервере который мне нужен? та же структура что и у сервера аси, получил передал сразу вот и всё...
Zalm (2009-09-07 17:51:00) [79]вот что сложного ответить на вопрос как отправить клиенту строку зная либо хендл, либо его адрес, либо его индекс подключения?)
Zalm (2009-09-07 17:48:00) [80]Server.Bindings.BindingByHandle(handle : cardinal)
а это что делает?