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.
langkah pertama dalam membuat komunikasi ethernet menggunakan C# adalah membuat form seperti dibawah ini.
langkah kedua adalah menambahkan library seperti dibawah ini.
using System.Net;
using System.Net.Sockets;
using System.Threading;
library tersebut digunakan untuk mengakses thread, socket, dan beberapa method lain yang dibutuhkan dalam membuat aplikasi.
langkah ketiga masukkan program seperti 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 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.0.255";
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); //
receivingthread = new Thread(start); //
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";
}
private void richTextBoxrtbchat_TextChanged(object sender, EventArgs e)
{
}
}
}
langkah keempat compile dan jalankan program.
Tidak ada komentar:
Posting Komentar