Я думаю, что php-сокеты и потоки php перекрывают друг друга.
Мне удалось создать клиентский интерфейс CLI PHP и сервер, используя либо сокеты, либо потоки.Php Sockets vs Streams
Вот некоторые иллюстрирующими строки кода:
Использование розеток:
...
$main_socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Cannot create socket.\n");
@socket_bind($main_socket, $host, $port) or die("Could not bind to socket $host : $port.\n");
@socket_listen($main_socket, 5) or die("Could not set up socket listener\n");
...
Использование потоков:
...
$main_socket = @stream_socket_server ("tcp://$host:$port", $errno, $errstr, STREAM_SERVER_BIND | STREAM_SERVER_LISTEN) or die("Cannot create socket.\n");
$clients = array($main_socket);
$clients_peername = array(array('port' => $port));
fputs(STDOUT, "Waiting for connections...\n");
...
Дело в том, что клиент и сервер может быть с использованием либо функции сокеты , либо потоковые функции.
Я знаю, что потоки являются частью ядра PHP, а сокеты - это расширение.
Мой вопрос (ы) является (являются):
- В чем разница между сокетами и потоками, обращаясь к программированию сокетов?
- Существуют ли какие-либо возможности, связанные с программированием сокетов, которые можно получить, а другие нельзя?
@JamWaffles Спасибо за редактирование и извините за мой английский. –
Нет проблем. Ваш английский почти идеальный, так что не о чем беспокоиться :) – Bojangles