Minggu, 14 Juni 2015

KOMUNIKASI ETHERNET

Asalammualaikum Wr.Wb

kali ini saya akan membahas tentang KOMUNIKASI ETHERNET

Dasar Teori
 
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.

Tahap pembuatan

1. Buat project baru, kemudian susun form control seperti pada gambar.

2. Tambahkan library berikut ini



        Library tersebut digunakan untuk mengakses thread, socket dan beberapa method
        yang dibutuhkan untuk pembuatan aplikasi.


Selanjutnya Sebelum membuat coding yang harus anda perhatikan ialah merubah name di Textbox dan Button

diganti namenya agar sesuai dengan coding yang ada di bawah ini..

diganti namenya agar sesuai dengan coding yang ada di bawah ini..


3. Salin dan sesuaikan program dibawah ini ke project anda, 

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_Ethernett
{
    public partial class Form1 : Form
    {
        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;
        public Form1()
        {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
            btnSend.Click += new EventHandler(button1_Click);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            btnSend.Focus();
            InitializeSender();
            InitializeReceiver();
        }
        private void InitializeSender()
    {
        sendingClient = new UdpClient(broadcastAddress, port);
        sendingClient.EnableBroadcast = true;
    }
        private void InitializeReceiver()
        {
            ThreadStart start = new ThreadStart(Reciver);
            receivingThread=new Thread(start);
            receivingThread.IsBackground = true;
            receivingThread.Start();
        }
        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 Reciver()
        {
            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)
        {
           rtbSend.Text += message + "\n";
        }
    }
}

4. Compile dan jalankan aplikasi.

5. Coba ganti IP address dan port yang digunakan.

6. Compile aplikasi kemudian amati.

Tidak ada komentar:

Posting Komentar