Praktikum - 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.
Pertama kita buka aplikasi visual studio
Lalu kita buat form seperti ini :
ketiga,
Kita tambahkan library dengan ini :
using System.Net;
using System.Net.Sockets;
using System.Threading;
Library tersebut digunakan untuk mengakses thread,
socket dan beberapa method
yang dibutuhkan untuk pembuatan aplikasi.
yang dibutuhkan untuk pembuatan aplikasi.
keempat,
Ini adalah 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 WindowsFormsApplication1
{
public partial class chatform : Form
{
delegate void
Addmessage(string message);
//string username;
//TcpClient topclient =
new TcpClient();
int port = 11000;
const string
broadcastAddress = "192.168.1.13";
UdpClient receivingclient
= new UdpClient(11000);
UdpClient sendingclient;
Thread receivingthread;
public chatform()
{
InitializeComponent();
this.Load +=
new EventHandler(chatform_Load);
btnsend.Click += new EventHandler(btnsend_Click);
//topclient.Connect("192.168.0.255",11000);
}
private void
chatform_Load(object sender, EventArgs e)
{
textBoxtbsend.Focus();
initializesender();
initializeReceiver();
}
private void
initializesender()
{
sendingclient = new UdpClient(broadcastAddress, port);
sendingclient.EnableBroadcast = true;
}
private void
initializeReceiver()
{
ThreadStart
start = new ThreadStart (Receiver); //</p>
receivingthread = new Thread(start); //</p>
receivingthread .IsBackground = true ;
receivingthread.Start();
}
private void
btnsend_Click(object sender, EventArgs e)
{
textBoxtbsend.Text
= textBoxtbsend.Text.TrimEnd();
if
(!string.IsNullOrEmpty(textBoxtbsend.Text))
{
string tosend = "<" + Environment.MachineName +
">:" + textBoxtbsend.Text;
byte[] data = Encoding.ASCII.GetBytes(tosend);
sendingclient.Send(data, data.Length);
textBoxtbsend.Text = "";
}
textBoxtbsend.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)
{
richTextBoxrtbchat.Text
+= message + "/n";
}
}
}
Kelima
Compile
dan amati
Keenam
Coba ganti
IP addrass dan port yg digunakan
Ketujuh
Kompile
dan amati lagi..
Terimakasih
semoga bermanfaat J
Tidak ada komentar:
Posting Komentar