If you specify no port number, or 0, a random free port will be chosen.
To use ports for ipc between client/server on the same machine you can use (minus error checking)
server.php:
<?php
$sock = socket_create_listen(0);
socket_getsockname($sock, $addr, $port);
print "Server Listening on $addr:$port\n";
$fp = fopen($port_file, 'w');
fwrite($fp, $port);
fclose($fp);
while($c = socket_accept($sock)) {
/* do something useful */
socket_getpeername($c, $raddr, $rport);
print "Received Connection from $raddr:$rport\n";
}
socket_close($sock);
?>
client.php:
<?php
$fp = fopen($port_file, 'r');
$port = fgets($fp, 1024);
fclose($fp);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, '127.0.0.1', $port);
socket_close($sock);
?>socket_create_listen
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
socket_create_listen
Референца за `function.socket-create-listen.php` со подобрена типографија и навигација.
socket_create_listen
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_create_listen — Отвара сокет на порта за прифаќање на врски
= NULL
socket_create_listen() креира нова Сокет инстанца од тип AF_INET слуша на all
локални интерфејси на дадената порта чекајќи нови врски.
Оваа функција е наменета да го олесни креирањето нов сокет кој само слуша за прифаќање нови врски.
Параметри
port-
Портата на која да слуша на сите интерфејси.
backlog-
На
backlogпараметарот ја дефинира максималната должина до која може да порасне редот на чекање врски.SOMAXCONNможе да се предаде какоbacklogпараметар, види socket_listen() Користење на PHP од командната линија
Вратени вредности
socket_create_listen() враќа нова Сокет инстанца при успех или false при грешка. Кодот за грешка може да се добие со
socket_last_error()on failure. The error code can be retrieved with
socket_strerror() . This code may be passed to
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
Стандардната вредност на сега е SOMAXCONN. Претходно беше 128.
|
| 8.0.0 | При успех, оваа функција враќа Сокет инстанца сега; претходно, а resource . |
Белешки
Забелешка:
Ако сакате да креирате сокет кој слуша само на одреден интерфејс, треба да користите socket_create(), socket_bind() and socket_listen().
Види Исто така
- socket_create() - Креирај сокет (крајна точка за комуникација)
- socket_create_pair() - Креира пар од неразлични сокети и ги складира во низа
- socket_bind() IPC пример
- socket_listen() - Binds a name to a socket
- socket_last_error() - Враќа последна грешка на сокетот
- socket_strerror() - Reads a maximum of length bytes from a socket
Белешки од корисници 3 белешки
Please note that port 1 to and with 1024 on linux and bsd system require root privileges. So it is recommended to choose a higher port for your own application.Remember that ports are only valid from 1 - 65535
[editor's note: typo fixed, thanks abryant at apple dot com]