Hello ENGINEER, Welcome to Electrical's Corner

Juni 12, 2015

KOMUNIKASI ETHERNET - PRAKTIKUM

Assalamualaikum Wr. Wb
hai guyyssss, kali ini laras bakalan bahas tentang komunikasi ethernet, contohnya kirim sms atau chat guys. 
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. Pada praktikum  kali  ini,  kita  akan  membuat sebuah  aplikasi  chatting  teks  sederhana menggunakan protocol UDP.
okey, sekarang lanjut yowww ke praktikumnya
1. Buka Visual studio 2012, pilih new project dan pilih windows form. 
2. Susun Form seperti dibawah ini:
3. tambahkan program dibawah ini.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace Laras_Komunikasi_Ethernet
{
    public partial class Form1 : Form
    {
        delegate void AddMessage(string message);
        string name;
        int port = 11000;
        const string broadcastAddress= "192.168.0.255"; // IP address tujuan
        UdpClient receivingClient = new UdpClient(11000); //port yg digunakan
        UdpClient sendingClient;
        Thread receivingThread;
        public Form1()
        {
            InitializeComponent();
            this.Load  += new EventHandler (Form1_Load);
            button1.Click +=new EventHandler (button1_Click);

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Focus();
            InitializeSender();
            InitializeReceiver();
        }

        private void InitializeSender()
        {
            sendingClient = new UdpClient(broadcastAddress, port);
            sendingClient.EnableBroadcast = true;
        }

        private void InitializeReceiver()
        {
            ThreadStart start = new ThreadStart(Receiver);</port>
            receivingThread =new Thread (start);</port>
            receivingThread.IsBackground=true;
            receivingThread.Start();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = textBox1.Text.TrimEnd();
            if (!string.IsNullOrEmpty(textBox1.Text))
            {
                string toSend = "<" + Environment.MachineName + ">:" + textBox1.Text;
                byte[] data = Encoding.ASCII.GetBytes(toSend);
                sendingClient.Send(data, data.Length);
                textBox1.Text = " ";
            }
            textBox1.Focus();
        }
        private void Receiver()
        {
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port);
            AddMessage messageDelegate = messageReceived;
            while (true)
            {
                byte[] data = receivingClient.Receive(ref endPoint);
                string message = Encoding.ASCII.GetString(data);
                Invoke(messageDelegate, message);
                System.Console.Beep(1500, 300);
            }
        }
        private void messageReceived(string message)
        {
            richTextBox1.Text += message + "\n";
        }
    }
}
4. Compile dan jalankan :)