1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| $socket = stream_socket_server (‘tcp://0.0.0.0:2000’, $errno, $errstr); stream_set_blocking($socket, 0);
$base = event_base_new(); $event = event_new(); event_set($event, $socket, EV_READ | EV_PERSIST, ‘ev_accept’, $base); event_base_set($event, $base); event_add($event); event_base_loop($base);
function ev_accept($socket, $flag, $base) { $connection = stream_socket_accept($socket); stream_set_blocking($connection, 0); $buffer = event_buffer_new($connection, ‘ev_read’, NULL, ‘ev_error’, $connection); event_buffer_base_set($buffer, $base); event_buffer_timeout_set($buffer, 30, 30); event_buffer_watermark_set($buffer, EV_READ, 0, 0xffffff); event_buffer_priority_set($buffer, 10); event_buffer_enable($buffer, EV_READ | EV_PERSIST); $GLOBALS[‘_’] = $buffer; }
function ev_error($buffer, $error, $connection) { event_buffer_disable($buffer, EV_READ | EV_WRITE); event_buffer_free($buffer); fclose($connection); }
function ev_read($buffer, $connection) { while ($read = event_buffer_read($buffer, 256)) {
} fwrite($connection , date(‘Y-m-d H:i:s’)); ev_error($buffer , ” , $connection); }
|