Netspirit писал(а):
Но сейчас пока не стоит: компоненты ещё дорабатываютсяПосле чего еще будет нужно время на тестирование переработок
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Netspirit писал(а): Но сейчас пока не стоит: компоненты ещё дорабатываютсяПосле чего еще будет нужно время на тестирование переработок |
|||
карма: 22 |
|
Ответов: 1328
Рейтинг: 69
|
|||
Netspirit писал(а): Попробуй в примерах поставь AsyncEvents=None, скажи, помогло ли.попробую. зы отключил связь с мемо - пока работает ------------ Дoбавленo в 16.58: nesco писал(а): После чего еще будет нужно время на тестирование переработокготов тестировать |
|||
карма: 2 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Ах, да. Некоторые наши компоненты могут быть просто не расчитанными на работу с параллельными потоками. Даже два экземпляра одного и того ж компонента могут иметь общие глобальные данные, при обращении к которым нужен дополнительный контроль. Также, как часто говорил nesco, обращение к визуальным компонентам из параллельных потоков тоже чревато, так как могут быть конфликты при обработке сообщений компонентом. Я с ошибкой при работе с Memo тоже сталкивался. Но она плавающая - нельзя точно отловить (компонент рисуется системой, кто его знает на какой комбинации он падает).
|
|||
карма: 26 |
|
Ответов: 1328
Рейтинг: 69
|
|||
Netspirit, еще бы добавить опцию отключение клиента по таймауту, если нет от него сообщений определенное время
|
|||
карма: 2 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Это в схеме делается: нужно вести список сопоставления <ClientID>|<LastDate>. Таймером пробегаешься по списку, у кого <LastDate> менше текущей на нужную величину - отключаешь.
Кстати. Вот сервер выдаёт список клиентов. Возникает необходимость хранить с каждым клиентом некоторые данные, как в данном случае. Мне приходит на ум некоторая "невидимая таблица", с функциями как у обычной (можно применять компоненты работы с таблицей). Вобщем, можно использовать и матрицы, но что-то мне не нравится работа с ними. Можно сделать дополнительный компонент, синхронизирующий невидимую и визуальную таблицы с сопоставлением указанных столбцов. |
|||
карма: 26 |
| ||
Голосовали: | Konst |
Ответов: 1328
Рейтинг: 69
|
|||
не 30 мин. 4 клиента все равно вылетел, пробую doSend
------------ Дoбавленo в 17.49: с 10 клиентами не в асинхр режиме сервер вешается- "программа не отвечает", попробую откл. мемо ------------ Дoбавленo в 20.54: заменил мемо на listbox - работает уже несколько часов ------------ Дoбавленo в 00.23: увеличил кол-во клиентов до 50 - сервер принимает 100 сообщений в сек., пока работает все ок ------------ Дoбавленo в 02.59: упал через 2 часа работы, клиенты при этом повисли( |
|||
карма: 2 |
|
Ответов: 48
Рейтинг: 0
|
|||
Konst писал(а): ruin, пример на старых компонентах из репозитория, может поможет ;)------------ Дoбавленo в 00.03: Есть локальная сеть, на каждом пк стоит TCP client и только на одном TCP server, клиентам заведомо не известен ip адрес сервера, возможно как то клиентам вычислить на какой машине стоит сервер, и подключиться к нему? |
|||
карма: 0 |
|
Ответов: 1328
Рейтинг: 69
|
|||
ruin, если известен диапазон ip адресов, подключаться по списку на порт сервера, при подключении послать опред. запрос на который сервер даст опред. ответ, ip приславший ответ и будет сервер
|
|||
карма: 2 |
|
Ответов: 1328
Рейтинг: 69
|
|||
сервер на TCP_ServerEx стабильно работает уже 2 суток, подключено более 100 "Альтернативных" клиентов, посылающих раз в сек сообщение
|
|||
карма: 2 |
|
Ответов: 48
Рейтинг: 0
|
|||
Konst подскажи пожалуйста, скопировал твой пример, вставил в hiasm но прога не работает в StreamPack текст отображается крокозябры и связи отпали..как вставить в hiasm?
https://drive.google.com/file/d/0B4SVGCrzko3oZ2NLdk9QM0JIN3M/edit?usp=sharing |
|||
карма: 0 |
|
Ответов: 1328
Рейтинг: 69
|
|||
карма: 2 |
|
Ответов: 48
Рейтинг: 0
|
|||
Konst, немножко не то, в том примере было показана передача файлов, она то как раз то мне и нужна. Пытаюсь собрать программку сервер, суть такая: ставлю сервер на пк админа, клиентов раскидываю на 100 пк в локальной сети. Из серверной части отправляю команды на выполнения клиентам, а так же по необходимости передаю файлы обновлений. С передачей текста я разобрался, передаю из сервера клиентам текст запроса, а на клиентах просто произвожу сравнения строки. А вот как dll файлы передать 100 клиентам в определенную директорию на жестком диске, с этим сложность. Вот тот пример я думаю очень бы помог мне
|
|||
карма: 0 |
|
Ответов: 242
Рейтинг: 13
|
|||
ruin, а ты попробуй посмотреть немного в другом направлении . Пусть нужные файлы у тебя будут в общедоступном сетевом каталоге и клиент будет работать не напрямую , а через виндовую консольку .
и команды например я бы на твоем месте изначально делал бы минимум техсоставные. Например : команда*1параметр*2параметр. При получении клиент разделяет на три составляющих , параметры загоняет в переменные . |
|||
карма: 0 |
|
Ответов: 1328
Рейтинг: 69
|
|||
ruin, похоже не ту скинул, жми в среде по вкладке, где у тебя написано Project1 пкм и выбери "список проектов" далее "Internet" все примеры оттуда
|
|||
карма: 2 |
|
Ответов: 48
Рейтинг: 0
|
|||
Konst, спасибо)) нашел!
Bams, через виндовую консольку это как? что то типа синхронизации? ...жаль tcp указанный в этой теме пока не умеет передавать файлы, я на нем чат сделал, а вот с файлами запарка. Похоже нужно учить Delphi, что бы не быть белой вороной)) |
|||
карма: 0 |
|