Вверх ↑
Этот топик читают: Гость
Ответов: 1061
Рейтинг: 22
#1: 2012-03-01 22:06:01 ЛС | профиль | цитата
Вопрос по компоненту TCP_Server/TCP_ServerEx:

- если клиент (TCP_Client) передаёт файл большого размера, будет ли при этом виснуть (т.е. ждать пока не загрузится файл) серверная программа во время передачи файла или будет продолжать работать с другими клиентами?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#2: 2012-03-01 22:16:19 ЛС | профиль | цитата
RinniX, данные принимает системная библиотека в отдельном потоке, отдавая целым блоком элементу. Соответственно, основное время - время копирования данных из оперативной памяти в неё же.
карма: 1

1
Голосовали:RinniX
Ответов: 1061
Рейтинг: 22
#3: 2012-03-02 08:44:38 ЛС | профиль | цитата
1nd1g0 писал(а):
RinniX, данные принимает системная библиотека в отдельном потоке, отдавая целым блоком элементу. Соответственно, основное время - время копирования данных из оперативной памяти в неё же.

А куда сохраняются данные во время передачи файла, в оперативную память или на HDD?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#4: 2012-03-02 10:37:17 ЛС | профиль | цитата
RinniX писал(а):
куда сохраняются данные во время передачи файла, в оперативную память или на HDD

Все операции происходят с оперативной памятью. По-этому блоки информации должны быть разумного размера.
карма: 1

0
Ответов: 1061
Рейтинг: 22
#5: 2012-03-02 10:46:25 ЛС | профиль | цитата
1nd1g0 писал(а):
Все операции происходят с оперативной памятью. По-этому блоки информации должны быть разумного размера.

Плохо! А запись сразу на HDD сделать нельзя?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#6: 2012-03-02 10:50:07 ЛС | профиль | цитата
RinniX писал(а):
А запись сразу на HDD сделать нельзя?

Нет, конечно. Читаем блоками, пишем на диск. Либо поручаем это делать встроенному в систему API через HTTP_Get FileName .
карма: 1

0
Ответов: 1061
Рейтинг: 22
#7: 2012-03-02 10:55:08 ЛС | профиль | цитата
1nd1g0 писал(а):
Нет, конечно. Читаем блоками, пишем на диск.

А как-же тогда веб-сервера с этим работают? Так-же или по другому?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#8: 2012-03-02 11:01:27 ЛС | профиль | цитата
RinniX писал(а):
А как-же тогда веб-сервера с этим работают?

Принимают от клиента блоками, пишут на диск. Читают блоками с диска, шлют клиенту. Это заложено в самой сути сетевых технологий. Вы вообще про протоколы интернета хоть что-нибудь читали Вроде, глобальные супер-проекты сетевые тут продвигаете, а основополагающую мат.часть не знаете.
карма: 1

0
Ответов: 1061
Рейтинг: 22
#9: 2012-03-02 11:56:53 ЛС | профиль | цитата
1nd1g0 писал(а):
Вы вообще про протоколы интернета хоть что-нибудь читали

Про протоколы читал! А то как они работают с информацией не читал и даже не задумывался! Недавно только задумался, поэтому и спрашиваю!
1nd1g0, спасибо за ответы!
карма: 0

0
Ответов: 4630
Рейтинг: 749
#10: 2012-03-02 12:33:40 ЛС | профиль | цитата
1nd1g0 писал(а):
Принимают от клиента блоками, пишут на диск

В связи с этим вопрос. В примерах аплоада файлов через форму на веб-странице и прием на PHP пишут, что опция PHP post_max_size зависит от объема оперативной памяти, с чего делаю вывод: если хостер ограничивает объем ОЗУ для PHP, то и размер загружаемых файлов ограничен этим объемом. Так ли это?
карма: 26

0
Ответов: 3889
Рейтинг: 362
#11: 2012-03-02 14:27:58 ЛС | профиль | цитата
Netspirit писал(а):
размер загружаемых файлов ограничен этим

upload_max_filesize
memory_limit
post_max_size
карма: 1

0
Ответов: 4630
Рейтинг: 749
#12: 2012-03-02 14:32:33 ЛС | профиль | цитата
Я это знаю, но если post_max_size ограничен оперативной памятью, то эта опция не может имет произвольной величины?
карма: 26

0
Ответов: 3889
Рейтинг: 362
#13: 2012-03-02 14:54:00 ЛС | профиль | цитата
Netspirit писал(а):
Я это знаю

Если знаете, то откуда такие вопросы:
Netspirit писал(а):
если post_max_size ограничен оперативной памятью, то эта опция не может имет произвольной величины?

post_max_size <= memory_limit <= физический объём памяти на сервере (или виртуальном сервере)
Причём всё это изменяемо вручную прописыванием соответствующих размеров в байтах в файле ini.
карма: 1

0
Ответов: 4630
Рейтинг: 749
#14: 2012-03-02 15:05:56 ЛС | профиль | цитата
Ладно, перефразирую самый первый вопрос: если сервер может корректно обрабатывать загружаемые по POST файлы любого размера, то влияет ли размер ОЗУ при приеме этих файлов в PHP? (нужные директивы выставлены по размеру файла)
карма: 26

0
Ответов: 3889
Рейтинг: 362
#15: 2012-03-02 15:57:04 ЛС | профиль | цитата
Netspirit, если память не ограничена директивами в ini, она будет ограничена максимальным размером целого числа со знаком, поддерживаемого версией PHP, стоящей на сервере и различными квотами на память и дисковое пространство файла подкачки для пользователя, под которым работает php.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)