Intereting Posts
Как получить доступ к объекту stdclass после определенной пары значений ключа? Laravel Auth: попытка () не будет продолжаться. PHP SQL выбирает, где в массиве идентификаторов и имеет одинаковое значение столбца переменной Загрузка файла в почтовом расширении Создание анимированного gif с использованием библиотеки GD Как создать новую страницу в плагине WordPress? Введите POST и GET переменные в одной форме Добавить 13 часов в метку времени Как сохранить прозрачный фон в PNG при изменении размера с помощью PHP? Ошибка MySQL / PHP: Разрешено только одно использование каждого адреса сокета (протокол / сетевой адрес / порт) Как я могу увеличить столбцы в mysql с помощью подготовленных операторов? Php: удалить все теги, но «a href» в тексте Является ли это хорошим способом санации входов php $ _POST? почему нам все еще нужен родительский конструктор, когда класс контроллера расширяет родительский контроллер? Как изменить исходный код php и перекомпилировать его?

Возможность PHP обрабатывать несколько TCP-соединений?

Мне было интересно, может ли PHP действовать как сервер через порт TCP? Сколько IDLE-соединений может обрабатывать сервер RAM 1 ГБ? Может ли PHP получать много соединений с одним TCP-портом (например, apache на порту 80?)

Если у меня есть клиент, подключенный к сокету, открытому PHP, как я могу отправить ему данные? (например, a.php прослушивает порт 5000, какой-то клиент подключен, позже b.php нужно что-то отправить этому клиенту, хорошо нажимайте сообщение?)

Или я буду использовать UDP вместо этого?

Друг, мой первый совет: даже если PHP может сделать это изначально. PHP не является лучшей технологией для реализации TCP Sockets Server. Причина заключается в том, что помните, что php имеет max_execution_time для каждого скрипта и делает запуск сервера вечно, для этого потребуется установить значение 0, которое означает навсегда. Количество подключений 1gb сервера ram-сервера зависит от того, сколько ram и процессор потребляют каждый php-процесс.

Но в любом случае, если вы решите сделать это с помощью php. Да, вы можете построить с php асинхронный сервер сокетов tcp.

Просто создайте мастер-сокет, прослушивающий 5000 (например). И для каждого клиентского сокета, который подключается к этому главному сокету, создайте дочерний сокет со случайным свободным портом (выбранным os) для каждого входящего соединения, и вы можете начать разговор с дочерним сокетом, освободив ведущего, чтобы продолжить прослушивание другого входящего соединения соединения.