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



PHP : Function Reference : Socket Functions : socket_listen

socket_listen

Listens for a connection on a socket (PHP 4 >= 4.0.7, PHP 5)
bool socket_listen ( resource socket [, int backlog] )

Examples ( Source code ) » socket_listen

<?php
$socket 
socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socket,$address,$port);
socket_listen($socket);
echo 
"Waiting for a connection\n";
$conn false;
switch(@
socket_select($r = array($socket), $w = array($socket), $e = array($socket), 60)) {
   case 
2:
       echo 
"Connection refused\n";
       break;
   case 
1:
       echo 
"Connection accepted\n";
       
$conn = @socket_accept($socket);
       break;
   case 
0:
       echo 
"Connection timed out\n";
       break;
}


if (
$conn !== false) {
   
// communicate over $conn

Code Examples / Notes » socket_listen

lewislp

socket_listen() cannot be used for UDP communications as discussed below.
In addition, the example below discusses UDP connections, which only exist if the application manages them through a state table (the OS does not create a UDP connection upon receiving a datagram).  Having a function named socket_connect() that determines the remote IP and port only confuses the matter by giving the indication of some sort of connection handshake between two hosts.  Rather, socket_connect() only specifies the remote IP and port used by subsequent socket_send() calls.  You can achieve the same effect by skipping socket_connect() altogether and specifying the remote IP and port in socket_sendto() calls.
If you find yourself writing a connection-based protocol on top of UDP, consider using TCP.  If your application requires streaming data of some sort, use TCP to manage connections and control messages, and UDP to handle the streaming data (H.323 is an example of a suite of TCP and UDP protocols working in conjunction).


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