PEMROGRAMAN SOCKET UDP
Pemrograman
socket dengan UDP (connectionless) dengan PHP merupakan salah satu pemrograman jaringan yang dapat digunakan untuk saling berkomunikasi antara server dengan Client
Kajian ini berisi uraian protocol UDP
menyangkut tentang konsep komunikasi antar proses, socket address yang dilengkapi
dengan pembahasan konsep pemrograman client server serta perbandingan antara
keduanya. Implementasi pada UDP socket menggunakan
bahasa pemrograman PHP, Pembahasan program dibagi ke dalam dua bagian
yakni pemrograman UDP socket pada client dan pemrograman UDP socket pada
server.
SOCKET_CREAT
Untuk membuat socket paru pada server menggunakan “socket_creat” dengan Nilai
konstanta parameter family protocol
TCP/IP IPv4 adalah AF_INET, Untuk Nilai parameter type untuk protocol protocol UDP adalah SOCK_DGRAM. Untuk Nilai
parameter protocol selalu di set 0 (nol) untuk penggunaan protocol TCP atau
UDP. Program di bawah ini akan tampil jika creat socket Gagal dengan hasil
tampilan “couldn’t create soccket:([$errorcode]->menunjukkan code di nomor
berapa terjadi error) ($errormsg\n->tidak dapat menampilkan pesan)
{ $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Couldn't
create socket: [$errorcode] $errormsg \n");}Tetapi jika
berhasil maka akan tampil echo "Socket created \n";
--Ã “Socket
Create”
//create socket
error_reporting(~E_WARNING);
//Create a
UDP socket
if(!($sock = socket_create(AF_INET,
SOCK_DGRAM, 0)))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't
create socket: [$errorcode] $errormsg \n");
}
SOCKET_BIND
Membuat socket Bind. Fungsi socket_bind()
mengikat socket address local ( sebuah IP Address dan sebuah port number ) dengan sebuah variable socket yang sudah dibentuk
melalui fungsi socket_created(). Socket _Bind
bertipe AF_INET family, Notasi IP
Address dalam bentuk dotted-quad (“0.0.0.0”,9999).
Bila berhasil fungsi ini akan bernilai
true dan false bila gagal
//socket Bind
if(
!socket_bind($sock, "0.0.0.0" , 9999) )
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could
not bind socket : [$errorcode] $errormsg \n");
}
echo "Socket bind OK \n";
RECEIVE
DATA FROM CLIENT
Fungsi ini berguna untuk menerima data dari sebuah socket TCP maupun UDP. Bila berhasil
dikerjakan fungsi ini akan bernilai jumlah byte yang diterima atau FALSE bila tidak berhasil. While(1)
melakukan perulangan sebanyak 1 kali. $r = socket_recvfrom($sock, $buf, 512,
0, $remote_ip, $remote_port); echo "$remote_ip : $remote_port --
" . $buf;
fungsi ini menerima pesan dari ip client yang terhubung pada server.
while(1)
{
echo "Waiting for data ...
\n";
//Receive
some data
$r = socket_recvfrom($sock, $buf, 512,
0, $remote_ip, $remote_port);
echo "$remote_ip : $remote_port --
" . $buf;
}
PENJELASAN PEMROGRAMAN PADA CLIENT
SOCKET_CREAT
Untuk membuat socket paru pada Client menggunakan
“socket_creat” dengan Nilai konstanta parameter family protocol TCP/IP IPv4
adalah AF_INET, Untuk
Nilai parameter type untuk
protocol protocol UDP adalah SOCK_DGRAM.
Untuk Nilai parameter protocol selalu di set 0 (nol) untuk penggunaan protocol
TCP atau UDP. Program di bawah ini akan tampil jika creat socket Gagal dengan
hasil tampilan “couldn’t create soccket:([$errorcode]->menunjukkan code di
nomor berapa terjadi error) ($errormsg\n->tidak dapat menampilkan
pesan)
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't
create socket: [$errorcode] $errormsg \n");
}
Tetapi jika
berhasil maka akan tampil echo "Socket created \n";
--Ã “Socket
Create”
$server =
'127.0.0.1'; merupakan ip dari pada Server yang akan di hubungkan dengan $port
= 9999;
//create socket clieent
error_reporting(~E_WARNING);$server =
'127.0.0.1';$port =
9999;if(!($sock
= socket_create(AF_INET, SOCK_DGRAM, 0))){ $errorcode
= socket_last_error(); $errormsg
= socket_strerror($errorcode); die("Couldn't
create socket: [$errorcode] $errormsg \n");}echo
"Socket created \n";
MENGIRIM PESAN PADA SERVER
Socket_sendto
berfungsi untuk mengirimkan pesan
ke sebuah socket. while(1)
merupakan perulangan. echo 'Enter a message to
send : '; $input
= fgets(STDIN); merupakan pesan yang akan dikirim pada server. if(
! socket_sendto($sock, $input , strlen($input) , 0 , $server , $port))
pemanggilan port server dan $input merupakan isi pesan yang akan di kirimkan
pada server. Sementara program di bawah ini merupakan pesan yang menunjukkna
bahwa pesan yang di kirim pada server gagal. Dan menampilkan nomor code yang
error pada program socket client.
{
$errorcode
= socket_last_error();
$errormsg=socket_strerror($errorcode);
die("Could
not send data: [$errorcode] $errormsg \n");
}
//mengirim pesan pada server
while(1){ //Take
some input to send echo
'Enter a message to send : '; $input
= fgets(STDIN); //Send the
message to the server if(
! socket_sendto($sock, $input , strlen($input) , 0 , $server , $port)) {$errorcode
= socket_last_error();$errormsg=socket_strerror($errorcode);die("Could
not send data: [$errorcode] $errormsg \n"); }BENTUK PEMROGRAMAN SOCKET UDP
baca juga Bagaimana Cara Membangun Sebuah Jaringanatau bagaimana cara mengkonfigurasi sebuah jaringan
HASIL TAMPILAN MENGGUNAKAN COMMAND PROMP ( CMD )