pfsockopen
действительно будет держать сокет открытым, когда скрипт завершится, что позволит повторно использовать его из запроса к другому, эффективно открывая меньше соединений, чем вы ожидаете. Однако это не совместимо со всеми SAPI.
Постоянство происходит для каждого процесса . Таким образом, pfsockopen
, запущенный в CLI, SAPI будет закрывать и заново открывать сокет при каждом выполнении, потому что скрипт CLI выполняется в одном процессе, который запускается, открывает сокет и заканчивается (закрывая сокет вместе с процессом) .
В режиме CGI с одним процессом на скрипт это также верно.
При использовании Apache SAPI зависит, какой тип модуля многопроцессорной обработки (MPM) используется. mpm-prefork
порождает новый процесс при каждом запросе, поэтому он, скорее всего, не поддерживает его. mpm-worker
однако порождает потоки, так что, вероятно, он будет работать там. mpm-winnt
- это вариант многопоточного MPM для Windows, поэтому он также должен работать.
Худшее, что может случиться, это то, что вызов будет выполнен как обычный fsockopen
вызов.