Minggu, 14 Juni 2015

Praktikum Komunikasi Ethernet.


Sedikit Teori mengenai 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. Pada
praktikum kali ini, kita akan membuat sebuah aplikasi chatting teks sederhana
menggunakan protocol UDP.

untuk membuat aplikasi yang berbasis ethernet, kita bisa membuatnya memlalui pemrograman C# .

langkah langkahnya  :

pertama, hidupkan komputer dan buka new project di visual studio

lalu buat designnya
setelah design selesai, masukkan codingannya :
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 Komunikasi_ethernet
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
            btnSend.Click += new EventHandler(button1_Click);
          
        }

        delegate void AddMessage(string message);
        string userName;
        int port = 11000;
        const string broadcastAddress = "192.168.0.255";
        UdpClient receivingClient = new UdpClient(11000);
        UdpClient sendingClient;
        Thread receivingThread;

        private void button1_Click(object sender, EventArgs e)
        {
            tbSend.Text = tbSend.Text.TrimEnd();
            if (!string.IsNullOrEmpty(tbSend.Text))
            {
                string toSend = "<" + Environment.MachineName + "> : " + tbSend.Text;
                byte[] data = Encoding.ASCII.GetBytes(toSend);
                sendingClient.Send (data, data.Length );
                tbSend.Text = "";
            }
            tbSend.Focus();
        }

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

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

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

         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)
        {
            rtbChat.Text += message + "\n";
        }

        private void rtbChat_TextChanged(object sender, EventArgs e)
        {

        }
    }

}
 
 
jika sudah selesai, langkah selanjutnya adalah kita running programnya :
hasil running :