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 :
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