Вопрос по компоненту TCP_Server/TCP_ServerEx:
- если клиент (TCP_Client) передаёт файл большого размера, будет ли при этом виснуть (т.е. ждать пока не загрузится файл) серверная программа во время передачи файла или будет продолжать работать с другими клиентами?
Этот топик читают: Гость
Ответов: 1061
Рейтинг: 22
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX, данные принимает системная библиотека в отдельном потоке, отдавая целым блоком элементу. Соответственно, основное время - время копирования данных из оперативной памяти в неё же.
|
|||
карма: 1 |
| ||
Голосовали: | RinniX |
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): RinniX, данные принимает системная библиотека в отдельном потоке, отдавая целым блоком элементу. Соответственно, основное время - время копирования данных из оперативной памяти в неё же.А куда сохраняются данные во время передачи файла, в оперативную память или на HDD? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX писал(а): куда сохраняются данные во время передачи файла, в оперативную память или на HDDВсе операции происходят с оперативной памятью. По-этому блоки информации должны быть разумного размера. |
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): Все операции происходят с оперативной памятью. По-этому блоки информации должны быть разумного размера.Плохо! А запись сразу на HDD сделать нельзя? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX писал(а): А запись сразу на HDD сделать нельзя?Нет, конечно. Читаем блоками, пишем на диск. Либо поручаем это делать встроенному в систему API через HTTP_Get FileName . |
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): Нет, конечно. Читаем блоками, пишем на диск.А как-же тогда веб-сервера с этим работают? Так-же или по другому? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX писал(а): А как-же тогда веб-сервера с этим работают?Принимают от клиента блоками, пишут на диск. Читают блоками с диска, шлют клиенту. Это заложено в самой сути сетевых технологий. Вы вообще про протоколы интернета хоть что-нибудь читали Вроде, глобальные супер-проекты сетевые тут продвигаете, а основополагающую мат.часть не знаете. |
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): Вы вообще про протоколы интернета хоть что-нибудь читалиПро протоколы читал! А то как они работают с информацией не читал и даже не задумывался! Недавно только задумался, поэтому и спрашиваю! 1nd1g0, спасибо за ответы! |
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
1nd1g0 писал(а): Принимают от клиента блоками, пишут на дискВ связи с этим вопрос. В примерах аплоада файлов через форму на веб-странице и прием на PHP пишут, что опция PHP post_max_size зависит от объема оперативной памяти, с чего делаю вывод: если хостер ограничивает объем ОЗУ для PHP, то и размер загружаемых файлов ограничен этим объемом. Так ли это? |
|||
карма: 26 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Netspirit писал(а): размер загружаемых файлов ограничен этимupload_max_filesize memory_limit post_max_size |
|||
карма: 1 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Я это знаю, но если post_max_size ограничен оперативной памятью, то эта опция не может имет произвольной величины?
|
|||
карма: 26 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Netspirit писал(а): Я это знаюЕсли знаете, то откуда такие вопросы: Netspirit писал(а): если post_max_size ограничен оперативной памятью, то эта опция не может имет произвольной величины?post_max_size <= memory_limit <= физический объём памяти на сервере (или виртуальном сервере) Причём всё это изменяемо вручную прописыванием соответствующих размеров в байтах в файле ini. |
|||
карма: 1 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Ладно, перефразирую самый первый вопрос: если сервер может корректно обрабатывать загружаемые по POST файлы любого размера, то влияет ли размер ОЗУ при приеме этих файлов в PHP? (нужные директивы выставлены по размеру файла)
|
|||
карма: 26 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Netspirit, если память не ограничена директивами в ini, она будет ограничена максимальным размером целого числа со знаком, поддерживаемого версией PHP, стоящей на сервере и различными квотами на память и дисковое пространство файла подкачки для пользователя, под которым работает php.
|
|||
карма: 1 |
|