Renungan

“Takkan bergeser kedua kaki manusia pada hari kiamat sampai selesai ditanya tentang 4 perkara: tentang UMURNYA, untuk apa dihabiskan; tentang MASA MUDANYA, untuk apa dipergunakan; tentang HARTANYA, dari mana diperoleh dan untuk apa dibelanjakan; dan tentang ILMUNYA, apa yang sudah diperbuat dengannya.”(HR. At-Tirmidzi no.2417)

Wednesday, November 20, 2013

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
<? php

//SET WAKTU
set_time_limit (0);

//MEMBUAT SOCKET
if (($socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP))<0)
{
echo "socket_create() function failed, because :"
.socket_strerror($sock). "\n";
}
else { echo "creating socket : OK \n";
}

//MEMBIND KE ALAMAT IP TERTENTU
If (($ret=socket_bind($sock,'127.0.0.1' , 21))<0)
{
echo "socket_bind() function failed, because : "
.socket_strerror($ret). "\n";
}
else
{
echo "binding socket : OK \n";
}

// MENSET AGAR SELALU DAPAT MENERIMA KONEKSI

if (($ret=socket_listen($sock, 5))<0)
{echo "socket_listen() function failed, because : "
.socket_strerror ($ret) . "\n";
}
else
{
echo "server listening for new incoming connection… \n";
}

//MENERIMA KONEKSI
do
{
if (($msgsock=sock_accept($sock))<0)
{
echo "accepting conection failed because : "
.socket_strerror($msgsock). "\n";
exit();
}
else
{
echo "Got Connected with client \n";
}
// MENGIRIM PESAN
$msg="Welcome to TCP Server Kantorku.com \n";
echo $msg;
socket write($msgsock, $msg, strlen($msg));
do
{
if (false===($buf=socket_read($msgsock, 2048, 30)))
{
echo "socket_read(_ function failed because :" .socket_strerror($buf) ."\n";
break 2;
}
if (!$buf=trim($buf))
{ continue;}
if ($buf=='quit')
{ break;}
if ($buf=='shutdown')
{ break 2; }
socket_write($msgsock, $buf, strlen($buf));
echo "$buf\0\n";
}
while (true);
socket_close ($msgsock);
}
while (true);

//MENUTUP SOCKET
socket_close($sock);
?>

Script Socket Untuk Client
client.php

<? php

//SET WAKTU
set_time_limit (0);
if (($sockcl=socket_create(AF_INET, SOCK_STREAM, SOL_TCP))<0)
{
echo " Error Bos, Tidak bisa bikin Socket".socket_strerror($sockcl) ."\n";
}
else
{
echo "Creating Socket : OK BOS \n";
}
if (($msgsockcl=socket_connect ($sockcl, '127.0.0.1', 21))<0)
{
echo "Ga bisa connect ke alamat target \n";
}
else
{
echo " Success Bos\n";
}
$stdin=fopen('php://stdin', 'r');
do
{
echo "Isikan pesan : ";
$pesan=fgets($stdin,50);
socket_write($sockcl, $pesan, strlen($pesan));
}
while (true);
fclose($stdin);
socket_close($sockcl);

?>
Jalankan program dengan menggunakan jendela command

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

AdSense

AdSense