|
stream_socket_accept
Accept a connection on a socket created by stream_socket_server
(PHP 5)
Code Examples / Notes » stream_socket_acceptmickael 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 Languagestream_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 |