Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Socket Functions : socket_create_listen

socket_create_listen

Opens a socket on port to accept connections (PHP 4 >= 4.0.7, PHP 5)
resource socket_create_listen ( int port [, int backlog] )

Examples ( Source code ) » socket_create_listen

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($fp1024);
fclose($fp);
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP);
socket_connect($sock'127.0.0.1'$port);
socket_close($sock);
?> 

Code Examples / Notes » socket_create_listen

basim

Remember that ports are only valid from 1 - 65536

jdittmer

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);
?>


Change Language


Follow Navioo On Twitter
socket_accept
socket_bind
socket_clear_error
socket_close
socket_connect
socket_create_listen
socket_create_pair
socket_create
socket_get_option
socket_getpeername
socket_getsockname
socket_last_error
socket_listen
socket_read
socket_recv
socket_recvfrom
socket_select
socket_send
socket_sendto
socket_set_block
socket_set_nonblock
socket_set_option
socket_shutdown
socket_strerror
socket_write
eXTReMe Tracker