PHP
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, 10 Oct 2008

view this page in

socket_create_listen

(PHP 4 >= 4.0.7, PHP 5)

socket_create_listenÖffnet einen Socket um Verbindungen über einem gegebenen Port aufzubauen

Beschreibung

resource socket_create_listen ( int $port [, int $backlog ] )

socket_create_listen() erzeugt einen neuen Socket-Deskriptor vom Typ AF_INET, der an allen lokalen Schnittstellen eines gegebenen Ports auf neue Verbindungen wartet.

Diese Funktion soll die Erzeugung eines neuen Sockets, der nur auf neue Verbindungsanforderungen wartet und akzeptiert, erleichtern.

Parameter-Liste

port

Der Port, den alle Schnittstellen abhören.

backlog

Der Parameter backlog gibt an, wie gross die Warteschlange mit wartenden Verbindungen maximal werden darf. SOMAXCONN kann als backlog übergeben werden. Mehr Informationen hierzu finden Sie bei socket_listen().

Rückgabewerte

socket_create_listen() gibt bei Erfolg einen neuen Socket-Deskriptor zurück oder FALSE, falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Anmerkungen

Hinweis: Falls Sie einen Socket erzeugen möchten, der nur bestimmte Schnittstellen abhört, müssen Sie socket_create(), socket_bind() und socket_listen() verwenden.



socket_create_pair> <socket_connect
Last updated: Fri, 10 Oct 2008
 
add a note add a note User Contributed Notes
socket_create_listen
masterwaster at gmail dot com
26-Aug-2008 11:42
Hi,
if you got same problems like i have

@socket_write($xd, "Good Bye!\n\r");
@socket_shutdown($xd, 2);
@socket_close($xd);

wont'tx send "Good Bye!\n\r" to the opened socket.

but if you put a
usleep or something like echo "";
between write and shutdown its working.
aeolianmeson at ifacfchi dot blitzeclipse dot com
26-Jun-2008 03:34
I believe that on some systems this may not bind to some or all public interfaces.

On my Windows system, I could not connect on the public interface using this, but could when I made the individual calls to create, bind, and listen.

Dustin Oprea
sysspoof at ng-lab dot org
06-Mar-2008 11:03
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.
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($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);
?>
basim at baassiri dot com
06-Feb-2004 02:50
Remember that ports are only valid from 1 - 65536

socket_create_pair> <socket_connect
Last updated: Fri, 10 Oct 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites