PHP: socket_create_listen - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

socket_create_pair socket_connect

Last updated: Fri, 26 Jan 2007

view this page in

# socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Opens a socket on port to accept connections

## Description

resource socket_create_listen ( int port [, int backlog] )

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

socket_create_listen() creates a new socket resource of type `AF_INET` listening on all local interfaces on the given port waiting for new connections.

The `backlog` parameter defines the maximum length the queue of pending connections may grow to. `SOMAXCONN` may be passed as `backlog` parameter, see socket_listen() for more information.

socket_create_listen() returns a new socket resource on success or `FALSE` on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

> Замечание: If you want to create a socket which only listens on a certain interface you need to use socket_create(), socket_bind() and socket_listen().

See also socket_create(), socket_bind(), socket_listen(), socket_last_error() and socket_strerror().

add a note User Contributed Notes
socket_create_listen
alex at do not spam me cedevices.com
07-Aug-2005 10:48
`Just a quick note on this function - it is not working properly in PHP 5.0.4 in that it does not listen on all interfaces (only listens on localhost).
I have filed Bug #34028 socket_create_listen doesn't listen on all interfaces
I am only posting this here because I had trouble figuring out that it was an issue and somebody might be having trouble too!`
vslash
16-Feb-2005 11:34
`Just correct one error about note below :
We read :
----
while($c = socket_accept($sock)) {
/* do something useful */
socket_getpeername($sock, $raddr, $rport);
print "Received Connection from $raddr:$rport\n";
}
----
but it must be :
socket_getpeername($c,$raddr,$rport);
;)`
jdittmer at ppp0 dot net
17-Jul-2004 04:42
`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($sock, $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);
?>`
basim at baassiri dot com
06-Feb-2004 02:50
`Remember that ports are only valid from 1 - 65536`
add a note
socket_create_pair socket_connect

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST