服务端
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 41 42 43 44 45 46 47 48 49 50 51 | <?php /** * Created by PhpStorm. * User: LeoKim * Date: 2017/5/12 * Time: 23:05 */ class Server{ private $serv ; private $test ; public function __construct() { $this ->serv = new swoole_server( "0.0.0.0" , 9502); $this ->serv->set( array ( 'worker_num' => 1, ) ); $this ->serv->on( 'Start' , array ( $this , 'onStart' )); $this ->serv->on( 'Connect' , array ( $this , 'onConnect' )); $this ->serv->on( 'Receive' , array ( $this , 'onReceive' )); $this ->serv->on( 'Close' , array ( $this , 'onClose' )); $this ->serv->start(); } public function onStart( $serv ) { echo "Start\n" ; } public function onConnect( $serv , $fd , $from_id ) { echo "Client {$fd} connect\n" ; } public function onClose( $serv , $fd , $from_id ) { echo "Client {$fd} close connection\n" ; } public function onReceive( swoole_server $serv , $fd , $from_id , $data ){ echo "Get Message From Client {$fd}:{$data}\n" ; foreach ( $serv ->connections as $client ){ if ( $fd != $client ) $serv ->send( $client , $data ); } } } $server = new Server(); |
客户端
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 41 42 43 44 45 46 47 | <?php /** * Created by PhpStorm. * User: LeoKim * Date: 2017/5/12 * Time: 23:13 */ $socket = stream_socket_client( "tcp://127.0.0.1:9502" , $errno , $errstr , 30); function OnRead() { global $socket ; $buffer = stream_socket_recvfrom( $socket , 1024); if (! $buffer ) { echo "Server clised\n" ; } echo "\nRECV: {$buffer}\n" ; fwrite(STDOUT, "Enter Msg:" ); } function onWrite() { global $socket ; echo "on Write\n" ; } function onInput() { global $socket ; $msg = trim( fgets (STDIN)); if ( $msg == 'exit' ){ swoole_event_exit(); exit (); } swoole_event_write( $socket , $msg ); fwrite(STDOUT, "Enter Msg:" ); } swoole_event_add( $socket , 'onRead' , 'onWrite' ); swoole_event_add(STDIN, 'onInput' ); fwrite(STDOUT, "Enter Msg:" ); |