SISTEM TERDISTRIBUSI (SILABUS dan Introduction to Distributed Systems)
PEMROGRAMAN SOCKET PADA PHP Socket programming merupakan bahasa pemrograman yang dapat mengkomunikasikan beberapa komputer. Socket programming tidak hanya dapat berfungsi sebagai tukar menukar data melainkan juga dapat berkomunikasi dengan program lain yang berjalan pada platform non-unix melalui jaringan TCP/IP. Pada mesin unix terdapat fasilitas rlogin, ssh, ftp, dll yang menggunakan socket. Socket terdiri dari beberapa elemen utama dantaranya: 1.Protokol 2.Local IP 3.Local Port 4.Remote IP 5.Remort Port
Protocol Family pada socket : 1.AF_INET = IPv4 dan AF_INET6 = IPv6 adalah protocol berbasis internet termasuk TCP dan UDP 2.AF_UNIX = berfungsi sebagai komunikasi local Tipe-tipe komunikasi pada socket : 1.SOCK_STREAM 2.SOCK_SEQPACKET 3.SOCK_RAW 4.SOCK_RDM 5.SOCK_DGRAM Spesifik Protokol pada socket : TCP, UDP, ICMP Contoh script pembuatan socket : Script Socket Untuk Server mainserver.php
Send message to server <?php $host= " "; $port= 9000; if($_POST['smb']){ $message = $_POST['msg']; echo "Message To server :".$message; echo ' '; $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); $result = socket_connect($socket, $host, $port) or die("Could not connect to server\n"); socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n"); $result = socket_read ($socket, 1024) or die("Could not read server response\n"); echo "Reply From Server :".$result; echo " "; socket_close($socket); } ?>
<? php // set some variables $host = " "; $port = 9000; set _ time _ limit (0); $socket = socket _ create ( AF _ INET, SOCK _ STREAM, 0) or die (" Could not create socket \ n "); $result = socket _ bind ( $socket, $host, $port ) or die (" Could not bind to socket \ n "); $result = socket _ listen ( $socket, 3) or die (" Could not set up socket listener \ n "); while ( true ){ $spawn = socket _ accept ( $socket ) or die (" Could not accept incoming connection \ n "); $input = socket _ read ( $spawn, 1024) or die (" Could not read input \ n "); if ( $input == '! close ') { socket _ write ( $spawn, ' good bye ', strlen (' good bye ')) or die (" Could not write output \ n "); break ; } $input = trim ( $input ); $output = strrev ( $input ). "\ n "; echo " Client Message : ". $input ; echo nl 2 br ('\ n \ n '); echo " Server Reply : ". $output ; echo nl 2 br ('\ n \ n '); socket _ write ( $spawn, $output, strlen ( $output )) or die (" Could not write output \ n "); } socket _ close ( $spawn ); socket _ close ( $socket ); ?>