Оправка - StreamToStr. Большие файлы - в цикле частями (рекомендуется модифицированный DataToFile)
Прием - тот же DataToFile.
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Netspirit писал(а): Прием - тот же DataToFile.НЕЛЬЗЯ говорю же, что уже клиента нельзя модифить, а только лишь сервер Netspirit писал(а): Большие файлыммм большие это какие? мой файл максимум весит 100кб |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Rysik писал(а): клиента нельзя модифитьБольшие - это те, к которым невозможно применить StreamToStr, потому что не поместится в ОЗУ. Не рекомендую больше 100 Мб (при 3.5 Гб RAM у меня получается и 1200 Мб, но это, вероятно, зависит от фрагментированности адресного пространства). [offtop]Если захочешь поспорить - марш сюда: [url]forum.html?q=3&t=63938[/url][/offtop] |
|||
карма: 26 |
| ||
Голосовали: | Rysik |
Ответов: 4628
Рейтинг: 749
|
|||
Обновлены компоненты
TCPClient Добавлены свойства AsyncConnect, SendTimeout, AutoReceive. Добавлена нижняя точка Socket. TCPServer Добавлены свойство SendTimeout и нижняя точка CurSocket Исправлены некоторые потенциальные ошибки. Свойство AsyncConnect добавлено потому, что после включения в предыдущей версии безусловного асинхронного подключения оказалось сложным, например, реализовать в цикле последовательность "выбрать адрес-подключиться-отправить команду-отключиться". Свойство SendTimeout добавлено потому, что в предыдущих версиях поток, отправляющий данные, мог зависать бесконечно, если клиент не принимал данные. Прерваться такой поток мог только в случае разрыва соединения. |
|||
карма: 26 |
| ||
Голосовали: | Konst |
Ответов: 1343
Рейтинг: 31
|
|||
а точку PROGRESS нельзя добавить? ДЛЯ СЕРВЕРА
ну что бы видеть как отсылаеться файл клиентам если отсылаеться вообще а то так ничё не видно, тоесть пусть даже есть onsend то от него толку никакого... |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Теоретически можно. При отправке сразу нескольким клиентам событие будет показывать попеременно для каждого клиента с выдачей CurClientID.
Придется также и в клиенте сделать. |
|||
карма: 26 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 9 раз(а), последний 2022-09-20 00:17:37 |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Обновил компоненты: добавил события onProgress, консольные примеры переделал без использования компонента MainLoop. Некоторые внутренние оптимизации.
|
|||
карма: 26 |
| ||
Голосовали: | Rysik |
Ответов: 2059
Рейтинг: 132
|
|||
Мастеру - на заметку.
(В каком-то журнале была такая рубрика.) Речь идет о Thread, в начале упоминалось. Все таки вернулся к старой версии. hiThread_new code_33696.txt hiThread_old.pas code_33697.txt Глубоко копать не было времени, но в новой версии коллизии с памятью, или со стеком. Это проявляется когда запущенны несколько потоков, разумеется и главный, и один из них синхронизирован с главным. Однако, может это и не причина (синхронизация одного из потоков с главным) падения программы. Но вернувшись к старому Thread, теперь стабильности работы позавидуют и кремлёвские часы. Однако и новая версия - имеет место быть. В простых случаях новый вариант даже предпочтительней, смотря какая задача стоит. Для примера, если интересно, выложу программу. Однако, - очень большая ~ 15. Одним sha не обойтись. |
|||
карма: 6 |
| ||
файлы: 2 | code_33696.txt [1.8KB] [512], code_33697.txt [1.8KB] [512] |
Ответов: 4628
Рейтинг: 749
|
|||
Надо внимательно анализировать схему. Не знаю, почему старый поток работает лучше, но новый очень активно используется в данных TCP компонентах. В сервере создается один поток для ожидания подключений, на каждое подключение создаётся по потоку, принимающему данные. Плюс, ещё и при асинхронной отправке данных создается по потоку на каждого клиента. И всё это совместно работает. Конечно, в коде, где только можно, подстелил соломки и, подозреваю, не всё ещё предусмотрел, но во время тестов вылетов не обнаруживаю.
|
|||
карма: 26 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Надо внимательно анализировать схему. Несомненно. У меня не используется TCP. Напротив, я где-то писал, что в определённых моментах это "то, что доктор прописал" (новый). Я имею в виду [offtop](а как нужно писать "ввиду"? слитно, или раздельно? А как правильно, - "нужно", или "надо"?)[/offtop]что выше сказано. И не только в случае TCP! Я к тому, что - имеет место быть, и не только... Я просто сделал два (вернее - оформил,как) компонента. |
|||
карма: 6 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 7 раз(а), последний 2022-09-20 00:13:57 |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Да, криво. Положить вручную файлы *.pas в папку ElementsDelphicode
|
|||
карма: 26 |
|
Ответов: 48
Рейтинг: 0
|
|||
Всем привет. Подскажите пожалуйста, не могу разобраться(( Запускаю сервер + клиент на одном компе, порт и ip (127.0.0.1) оставляю без изменений, при этом все работает, клиент конектится к серверу. Но когда сервер оставляю на одном компе а клиента запускаю на другом, ни как не хочет соединяться. При этом я конечно меняю на клиенте ip сервера который смотрит в интернет, но соединения нет. Может я что то не так делаю?
|
|||
карма: 0 |
|
Ответов: 817
Рейтинг: 52
|
|||
ruin писал(а): Может я что то не так делаю? Может что то и не так. Включаю телепатию Видимо у тебя затык на уровне сети. Для начала нарисуй топологию твоей сети (можешь выложить здесь - разберемся быстрее) и потом уже наглядно сможешь увидеть где у тебя затык. |
|||
карма: 1 |
|