Сокеты производительности и накладных расходов - PullRequest
4 голосов
/ 04 июня 2011

Какой из этих двух вариантов подключения к сокету более эффективен в плане повышения производительности и уменьшения накладных расходов?

socket_connect family или fsockopen ?

1 Ответ

3 голосов
/ 04 июня 2011

Насколько я знаю, производительность почти одинакова, но результат подключения после инициализации будет другим.Например, fsockopen() откроет соединение и сразу перейдет в LISTENING -состояние, где socket_create() просто создаст соединение, а socket_open() поместит его в LISTENING -состояние.

Можно сказать,: fsockopen() === socket_open(socket_create(), ADDRESS)

Кроме того, после того, как вы выполните socket_shutdown() и socket_close(), вы оставите соединение в TIME_WAIT -состоянии, что заставит сокет ждать, пока приемный конец сокета не отсоединится, что может занять некоторое время.

В целом, там все то же самое, выберите тот, который вам нравится больше всего, и лучше всего соответствует вашим намерениям.Если вы хотите предварительно создать все сокеты, но подключаться только в определенное время, используйте socket_create(), в противном случае используйте fsockopen(), поскольку это проще.

Если у вас есть собственный веб-сервер и нет намеренияРаспространяя свой код, вы также можете взглянуть на cURL, который, по сути, такой же, как и другие варианты, но имеет больше встроенных отказоустойчивых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...