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



PHP : Function Reference : Stream Functions : stream_socket_accept

stream_socket_accept

Accept a connection on a socket created by stream_socket_server (PHP 5)
resource stream_socket_accept ( resource server_socket [, float timeout [, string &peername]] )


Code Examples / Notes » stream_socket_accept

mickael dot bailly

this function, compared to the function socket_accept, got an extra argument "timeout".
To make this function wait indefinitelly to incoming connections, just as in socket_accept, set timeout to -1. It works for me with PHP 5.0.4.


leleu256nospam

This code could be very helpfull...
The following code is for the "server". It listen for a message until CTRL-C
<?php
while (true)
{
// disconnected every 5 seconds...
receive_message('127.0.0.1','85',5);
}
function receive_message($ipServer,$portNumber,$nbSecondsIdle)
{
 // creating the socket...
 $socket = stream_socket_server('tcp://'.$ipServer.':'.$portNumber, $errno, $errstr);
 if (!$socket)
 {
   echo "$errstr ($errno)<br />\n";
 }
 else
  {
   // while there is connection, i'll receive it... if I didn't receive a message within $nbSecondsIdle seconds, the following function will stop.
   while ($conn = @stream_socket_accept($socket,$nbSecondsIdle))
   {
    $message= fread($conn, 1024);
    echo 'I have received that : '.$message;
    fputs ($conn, "OK\n");
    fclose ($conn);
   }
   fclose($socket);
 }
}
?>
The following code is for the "client". It send a message, and read the respons...
<?php
send_message('127.0.0.1','85','Message to send...');
function send_message($ipServer,$portServer,$message)
{
 $fp = stream_socket_client("tcp://$ipServer:$portServer", $errno, $errstr);
 if (!$fp)
 {
    echo "ERREUR : $errno - $errstr<br />\n";
 }
 else
 {
    fwrite($fp,"$message\n");
    $response =  fread($fp, 4);
    if ($response != "OK\n")
       {echo 'The command couldn\'t be executed...\ncause :'.$response;}
    else
       {echo 'Execution successfull...';}
    fclose($fp);
 }
}
?>


Change Language


Follow Navioo On Twitter
stream_bucket_append
stream_bucket_make_writeable
stream_bucket_new
stream_bucket_prepend
stream_context_create
stream_context_get_default
stream_context_get_options
stream_context_set_option
stream_context_set_params
stream_copy_to_stream
stream_encoding
stream_filter_append
stream_filter_prepend
stream_filter_register
stream_filter_remove
stream_get_contents
stream_get_filters
stream_get_line
stream_get_meta_data
stream_get_transports
stream_get_wrappers
stream_register_wrapper
stream_resolve_include_path
stream_select
stream_set_blocking
stream_set_timeout
stream_set_write_buffer
stream_socket_accept
stream_socket_client
stream_socket_enable_crypto
stream_socket_get_name
stream_socket_pair
stream_socket_recvfrom
stream_socket_sendto
stream_socket_server
stream_socket_shutdown
stream_wrapper_register
stream_wrapper_restore
stream_wrapper_unregister
eXTReMe Tracker