Ce face socket_select
Funcția socket_select monitorizează simultan tablouri de socket-uri pentru a vedea care dintre ele au date gata de citit sau sunt gata pentru scriere, fără a bloca scriptul. Este fundația arhitecturilor event-driven asincrone (cum ar fi ReactPHP sau Workerman).
Exemplu practic: Buclă non-blocantă de selectare
<?php
$clienti = [$server];
while (true) {
$read = $clienti;
$write = null;
$except = null;
// Așteptăm maxim 1 secundă pentru evenimente de I/O:
$modificari = socket_select($read, $write, $except, 1);
if ($modificari > 0) {
foreach ($read as $sock) {
if ($sock === $server) {
// Avem o conexiune nouă la server:
$nou = socket_accept($server);
$clienti[] = $nou;
} else {
// Un client existent a trimis date:
$date = socket_read($sock, 1024);
if ($date === "" || $date === false) {
// Client deconectat
socket_close($sock);
$cheie = array_search($sock, $clienti);
unset($clienti[$cheie]);
}
}
}
}
}
Întrebări & Exemple de Cod:
socket_selectAi o nelămurire despre utilizarea comenzii
socket_selectsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.