Pengetahuan Dasar Network Programming (socket programming)

Network programming perlu kita pelajari sebab microcontroller   yg ada  sekarang selain berkomunikasi dgn RS232/rs485 juga sudah banyak yang menggunakan komunikasi  LAN dan internet.  Sehingga dengan begitu microcontroller bisa diakses/dikendalikan dari PC lewat LAN  dan juga bisa lewat internet.

Network Layer

Gambar dibawah ini untuk mengingatkan kembali, bagaimana paket data/pesan mesti melalui  lapisan lapisan  supaya  sampai ke tujuan.

Untuk sampai ketujuan pesan (paket data) yg kita kirim harus melalui beberapa tahap/layer:
– Lapisan aplikasi : aplikasi  FTP, SMTP, HTTP  : aplikasi chating ,catur online, mozilla dll
-Lapisan transport: process-process data transfer yaitu  TCP dan  UDP
-Lapisan Internet:  membuat rute   datagrams dari  sumber ke tujuan : IP digunakan mencari  rute
-Lapisan Network Interface: data transfer PPP, Ethernet
-Lapisan Phisik:  pengiriman bit per bit  (5 volt atau o volt)

Apa itu  Socket ?  : untuk mencapai tujuan perlu alamat jelas……

Socket adalah gabungan alamat ip dan nomor port.

Berikut ini  contoh aplikasi yg berkomuniaksi lewat LAN atau internet dlm kehidupan sehari hari:

Ada 2 orang yang sedang chating  sambil chating kedunya juga bermain program catur online .

Untuk  mencapai tujuan,paket  data masing masing aplikasi mempunyai alamat PC  yg dituju dan alamat aplikasi yg dituju.  Alamat PC berupa IP adress dan alamat aplikasi (prosses) berupa nomor port (port yang dimaksud disini bukan port yg ada di microcontroller ).    Kombinasi  IP adress dan nomor port  disebut socket.  Aplikasi dalam contoh gambar di atas yaitu program Catur online  dan Chating

Socket bisa juga dianalogikan  dengan  sebuah alamat kartu  pos jika kita ingin mengirim surat,  maka kita perlu alamat rumah dan nama si penerima ,karena di alamat rumah yg dituju dihuni   beberapa orang. Jika  hanya alamat rumah saja nanti suratnya , maka tdk akan sampai kepada orang yg dituju.

alamat rumah = IP adress

nama orang yg dituju =  nomor  port

Keterangan ttg Nomor Port:
• Nomor Port  terdiri dari  16 bit integer  :  0 ~ 65,535.
• Server harus menetapkan sebuah nomor port.
• Client program  menentukan  dirinya sebuah epheral nomor port  epheral.
• IANA (Internet Assigned Number Authority)  membagi nomor port
menjadi  3 :
1. no Port  0 sampai  1023 , ditetapkan dan di control oleh
IANA. misal:  no port 23 untuk FTP, 25  untuk  SMTP dan 80 untuk HTTP.
2.nomor port  1024  sampai 49,151   tidak dicontrol oleh  IANA,
tapi dapat di tetapkan penggunaanya oleh IANA.
3. nomor port dinamis 49,152  sampai  65,535  dapat digunakan  untuk proses apa saja disebut juga  epheral port.

Client-Server  :  siapa yang mulai  meminta dilayani , siapa yg melayani..

Jika ada 2 aplikasi yg saling berkomunikasi  maka salah satu aplikasi harus ada yg  memulai dan yg lain menunggu / siap merespon  komunikasi. fihak yg aktif memulai di sebut sebagai client dan fihak yg  passive menunggu (siap merespon) disebut server.

jadi yang dimaksud client dan server  komunikasi jaringan adalah sebuah aplikasi/program  bukan berupa  hardware .

Karakteristik aplikasi Client
• Diaktifkan oleh user.
• Dijalankan di lokal komputer
• Berinisiatif  sebagai fihak yang memulai  menghubungi server
• Tidak perlu  special hardware atau OS khusus.

Karakteristik aplikasi  Server
• dapat melayani banyak client dalam satu saat.
• program otomatis aktif ketika komputer dinyalakan dan siap melayani permintaan client.
• berjalan di komputer yg disharing( bukan personal komputer).
• Pasive menunggu di kontak oleh client.
• membutuhkan powerful hardware dan OS khusus (misal windows server 2008),  karena harus melayani banyak client.

TCP  atau UDP :  pesan harus sampai  atau yang penting pesan sudah ku sampaikan…

Pesan yang akan kita kirim apakah harus sampai ke tujuan atau yg penting sudah kita kirim sampai atau tdk , tdk terlalu penting artinya ada kemungkinan pesan tdk diterima .

jika pesan harus (wajib) sampai ke si penerima maka kita pilih TCP

jika pesan tdk harus sampai, atau ada kemungkinan tdk diterima kita pilih UDP.

antara TCP dan UDP ada kekurangan dan kelebihannya masing-masing penggunaanya tergantung kebutuhan tiap aplikasi.

TCP mempunyai  transport layer  identitas  6 dan  UDP : 17

Kalau boleh saya umpamakan pesan dgn TCP itu seperti menghubungi orang lain  dgn   handphone   pasti terhubung atau tidak sama sekali.

Kalau UDP itu seperti menghubungi orang2 dengan speaker Toa di mesjid , Bgini contohnya “kepada bapak2 pengurus DKM harap kumpul dimesjid akan ada rapat malem ini”.  Kita tidak tahu pesan  pengumuman tsb sampai atau tdk , krn bapak2 yg dimaksud  mungkin ada yg di rumah atau  ada yg masih  di kantor.

UDP

TCP :

Mekanisme Komunikasi antara Client  dan Server 

Jika data bebentuk Stream (TCP)

Proses komunikasi Client server protokol  TCP  pada  pemrograman C# :

Jika menggunakan Datagram (UDP)

Contoh Pemrograman Network dengan C#

Contoh Code Client UDP

using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text;

private void button1_Click(object sender, System.EventArgs e)
{
UdpClient udpClient = new UdpClient();
udpClient.Connect(tbHost.Text, 8080);
Byte[] sendBytes = Encoding.ASCII.GetBytes(“Hello World?”);
udpClient.Send(sendBytes, sendBytes.Length);
}

Contoh Code Server UDP

using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text;

public void serverThread()
{
UdpClient udpClient = new UdpClient(8080);
while(true)
{
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any,0);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
string returnData = Encoding.ASCII.GetString(receiveBytes);
lbConnections.Items.Add(RemoteIpEndPoint.Address.ToString() + “:” +returnData.ToString());
}
}

private void Form1_Load(object sender, System.EventArgs e)
{

Thread thdUDPServer = new Thread(new ThreadStart(serverThread));
thdUDPServer.Start();
}

http://www.atmel.com/Images/doc2396.pdf

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

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

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s