Beranda > Tutorial > Belajar membuat applikasi socket Dengan PHP

Belajar membuat applikasi socket Dengan PHP

Ok sahabat muda pecinta komentar sekian lama saya tidak pernah memposting artikel baru di blog ini membuat saya semakin rindu untuk menulis lagi,  ide dan pemikiran yang ingin saya tuangkan dalam bentuk tulisan , tentunya sangat banyak .  Namun terkadang rasa malas sering kali berkelayutan , tapi kali ini saya coba sempatkan menulis artikel ini,

Mungkin bagi yang sering bermain dengan socket programming judul ini mungkin udah gak asing lagi tapi bagi saya pribadi justru menarik dan menantang, apa manfaat pemograman dengan socket applikasi ?..

Contoh yang paling sederhananya adalah membuat program chating tanpa menggunakan database , ya sebenarnya bisa juga membuat applikasi chtaing dengan database hanya saja dalam jumlah tertent

u kurang effective.

Awalnya saya coba-coba membuat script untuk bermain client server di php , lama-kelamaan rupanya menarik juga akhirnya ya sudah saya langsung menuju ke Refrensinya PHP di : http://www.php.net/manual/en/ref.sockets.php

Silahkan  di ubek-ubek ( he…. He… )…

Disini saya punya dua file pertama untuk di sisi server dan yang kedua di sisi Client , berikut ini untuk script disisi server :

Ok sahabat muda pecinta komentar sekian lama saya tidak pernah memposting artikel baru di blog ini membuat saya semakin rindu untuk menulis lagi,  ide dan pemikiran yang ingin saya tuangkan dalm bentuk tentunya sangat banyak namun terkadang rasa malas sering kali berkelayutan , tapi kali ini saya coba paksakan dengan artikel ini,

Mungkin bagi yang sering bermain dengan socket programming judul ini mungkin udah gak asing lagi tapi bagi saya pribadi justru menarik dan menantang, apa manfaat pemograman dengan socket applikasi ?..

Contoh yang paling sederhananya adalah membuat program chating tanpa menggunakan database , ya sebenarnya bisa juga membuat applikasi chtaing dengan database hanya saja dalam jumlah tertentu kurang effective.

Awalnya saya coba-coba membuat script untuk bermain client server di php , lama-kelamaan rupanya menarik juga akhirnya ya sudah saya langsung menuju ke Refrensinya PHP di : http://www.php.net/manual/en/ref.sockets.php

Silahkan  di ubek-ubek ( he…. He… )…

Disini saya punya dua file pertama untuk di sisi server dan yang kedua di sisi Client , berikut ini untuk script disisi server :

<?php
    class server_socket{
    
        var $host;
        var $port;
        var $buffer;
        var $connected;
        var $bind_result;
        var $lstn_result;
        var $newSocket;
        var $to_client;
        var $from_client;
        var $writeLen;
        
        function __construct($host="127.0.0.1",$port=9001,$max=0){
            $this->host      = $host;
            $this->port      = $port;
            $this->buffer    = 1024;
            $this->connected = false;
            echo " Start listening... \n\r";
            $this->server_created_socket();
        }
        
        public function server_created_socket(){
            set_time_limit(0);
            $this->connected = socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create a socket");
            if($this->connected)
            {
                $this->bind_result= socket_bind($this->connected,$this->host,$this->port) or die('could not bind to port');
                if($this->bind_result)
                {
                    $this->lstn_result= socket_listen($this->connected,3) or die('unable to listen');
                    $this->open_listening();
                }
            }
            else
            {
                self::__construct();
            }
        }
        
        
        private function listen_loop(){
            $this->newSocket    = socket_accept($this->connected);
            if($this->newSocket) return true;
            else return false;
        }
        
        
        
        public function open_listening(){
            $this->listen_loop();
            $this->from_client  = socket_read($this->newSocket,$this->buffer);
            $this->from_client  = trim($this->from_client);
            $this->str_cmd[date('Y-m-d h:i:s')]='';
            if($this->from_client)
            {
                $this->str_cmd[date('Y-m-d h:i:s')]  = $this->from_client;
                self::write_callback_toclient();
                self::console();
                socket_set_block($this->connected);
                if(!$this->connected) $this->server_created_socket();
                $this->server_created_socket();
            }
        }
        
        
        function write_callback_toclient(){
            $this->to_client = $this->from_client;
            $this->writeLen  = socket_write($this->newSocket,$this->to_client,strlen($this->to_client)) or die('unable to write');
        }
        
    
        public function console(){
            if(is_array($this->str_cmd)){
                $n=0;
                foreach($this->str_cmd as $key=>$value){
                    echo "[".$key."] :".$value." \n\r";
                $n++;
                }
            }
        }
    }
    
    
    
    ob_implicit_flush(true);
    $ok = new server_socket($host="127.0.0.1",$port=9001,$max=0);
?>    

Kasih nama misalnya : server_socket.php, selanjutnya buat file untuk di sisi client :

<?php
$host        ="127.0.0.1";
$port         = 9001;
$message     = " IP : ".$_SERVER['REMOTE_ADDR'];
$socket     = socket_create(AF_INET, SOCK_STREAM, 0) or die("[".date('Y-m-d H:i:s')."]from Client: Could not create socket\n");
$result     = socket_connect($socket, $host, $port) or die("[".date('Y-m-d H:i:s')."]from Client: Unable to connect to server\n");

socket_write($socket, $message, strlen($message)) or die("from Client: Unable to send data to server\n");

$result     = socket_read ($socket, 1024) or die("from client: Could not read response from server \n");

socket_write($socket, "END", 3) or die("from client: Could not end session \n");
socket_close($socket);
$result     = trim($result);
echo "\n Message returned : ".$result;
?>

Kasih Nama : test_client3.php

selanjutnya kita test dengan membuka comand prompt ( saya pake windows dengan server local XAMPP)
  C:\xampp\php>php -f c:\\xampp\htdocs\smpchat\server_socket.php (Kebetulan letak folderya di smpchat , tapi mau di folder apa aja terserah ) yang penting di loclalhost

 

 

 

 

selanjutnya buka browser anda misalnya : Mozila

Seperti gamabar berikut ini:

 

 

 

 

 

 

Refresh berkali-kali..

setelah itu lihat reaksi pada program php yang kita jalankan di comand prompt :

 

 

 

 

 

 

 

 

 

Perhaltikan pada gambar ini , ternyata socket disisi server sudah meresponse file yang kita request dari sisi client .

Untuk membukitkannya  kita bisa mengakses dari beberapa browser seperti , crhome, IE, dll,

Ubah script disisi clientanya pada bagian

$_SERVER['REMOTE_ADDR'];

dengan $_SERVER['USER_AGENT']

Karna jika benar maka pada php yang kita jalankan lewat console akan menampikan Request
client dari browser apa saja .

Oke untuk lebih lanjutnya silahkan di uji coba sendiri tentu dengan gaya-masing, dan yang penting gak mesti OOP,

kalau yang saya buat kebetulan saya lagi rajin Pake OOP php, gak pake OOP pun tetap bisa .

Selamat mencoba N good luck.. :)

Categories: Tutorial Tag:, , ,
  1. Belum ada komentar.
  1. Belum ada trackback.

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 35 pengikut lainnya.