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
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
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
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.