Gobar

Gobar

Gobar

Gobar

Gobar

Minggu, 14 Juni 2015

Komunikasi Ethernet

Assalammualaikum Wr.Wb


Welcome to my blog……


Kembali lagi dengan saya Gobar di Catatan Mungil. Pada kesempatan kali ini saya ingin memberikan sedikit tutorial mengenai komunikasi ethernet. Komunikasi Ethernet merupakan salah satu jenis komunikasi yang paling sering ditemui saat ini. Penggunaannya juga beragam, bisa digunakan untuk komunikasi antar PC, PC dengan mikrokontroller, PC dengan PLC, PLC dengan PLC dan sebagainya.

Komunikasi Ethernet dapat menggunakan media berupa kabel maupun nirkabel. Media kabel yang digunakan biasanya berupa kabel UTP yang ditiap ujungnya terdapat konektor RJ45, sedangkan yang nirkabel biasanya memanfaatkan router wireless. Untuk mengenali tujuan pengiriman data, komunikasi ini menggunakan IP address dan port. IP Address dianalogikan sebagai kompleks perumahan, dan port dianalogikan sebagai nomor rumah. Jika IP Address dan port yang digunakan asal-asalan, maka paket data yang dikirimkan juga tidak akan pernah sampai ke device tujuan. Pada komunikasi Ethernet terdapat 2 jenis protocol pengiriman data, yaitu TCP dan UDP. Kedua protocol tersebut memiliki kelebihan dan kekurangan masing-masing.

Nah…, pada kesempatan kali ini kita akan mencoba membuat sebuah aplikasi chatting teks sederhana menggunakan protocol UDP.

Lakukan langkah-langkah berikut :



a.  Klik “new project” lalu buatlah desain sesuai dengan gambar dibawah.




b.  Tambahkan Library berikut kedalam program


using System.Net;
using System.Net.Sockets;


Library diatas digunakan untuk mengakses Thread, Socket dan beberapa method yang dibutuhkan dalam pembuatan aplikasi.



      c.  Ikuti program dibawah ini, masukkan kedalam project yang telah dibuat.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;


namespace Chat
{
    public partial class Form1 : Form
    {
        Socket IP;
        EndPoint epLocal, epFriends;

        public Form1()
        {
            InitializeComponent();
            this.Height = 212;

            IP = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IP.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

            textBox_LocalIP.Text = textBox_FriendsIP.Text = AmbilLocalIP();
        }

        private string AmbilLocalIP()
        {
            IPHostEntry Saya;
            Saya = Dns.GetHostEntry(Dns.GetHostName());

            foreach (IPAddress ip in Saya.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    return ip.ToString();
                }
            }

            return "127.0.0.1";
        }

        private void PesanMasuk(IAsyncResult hasil)
        {
            try
            {
                int jumlah = IP.EndReceiveFrom(hasil, ref epFriends);

                if (jumlah > 0)
                {
                    byte[] DataDiTerima = new byte[1464];
                    DataDiTerima = (byte[])hasil.AsyncState;

                    ASCIIEncoding eEncoding = new ASCIIEncoding();
                    string PesanDiTerima = eEncoding.GetString(DataDiTerima);

                    listBox_Pesan.Items.Add("Teman\t: " + PesanDiTerima);
                }

                byte[] buffer = new byte[1500];
                IP.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epFriends, new AsyncCallback(PesanMasuk), buffer);
            }

            catch (Exception exp)
            {
                MessageBox.Show(exp.ToString());
            }
        }

        private void button_Connect_Click(object sender, EventArgs e)
        {
            try
            {
                epLocal = new IPEndPoint(IPAddress.Parse(textBox_LocalIP.Text), Convert.ToInt32(textBox_LocalPort.Text));
                IP.Bind(epLocal);

                epFriends = new IPEndPoint(IPAddress.Parse(textBox_FriendsIP.Text), Convert.ToInt32(textBox_FriendsPort.Text));
                IP.Bind(epFriends);

                byte[] buffer = new byte[1500];
                IP.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epFriends, new AsyncCallback(PesanMasuk), buffer);
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            button_Connect.Text = "Tersambung";
            button_Connect.BackColor = Color.Orange;
            button_Connect.Enabled = false;
            textBox_Input.Focus();

            for (int panjang = this.Height; panjang <= 500; panjang++)
            {
                this.Height = panjang;
            }
        }

        private void button_Kirim_Click(object sender, EventArgs e)
        {
            try
            {
                System.Text.ASCIIEncoding Kirim = new System.Text.ASCIIEncoding();
                byte[] pesan = new byte[1500];
                pesan = Kirim.GetBytes(textBox_Input.Text);

                IP.Send(pesan);
                listBox_Pesan.Items.Add("Anda\t: " + textBox_Input.Text);
                textBox_Input.Clear();
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}



d.  Ketika program dijalankan :


Tampilan awal Program




Setelah mengklik tombol “hubungkan” , maka akan tampil seperti dibawah ini

Z



Klik allow acces, maka kedua aplikasi telah terhubung dan chatting siap untuk digunakan






Baiklah…,, Demikian sedeikit penjelasan yang dapat saya sampaikan, jika ada kesalahan saya mohon dimaafkan. semoga ini bermanfaat :)


Nantikan terus postingan-postingan saya selanjutnya di 


Wassalammualaikum Wr.Wb





Terima Kasih