Hai hai halo halo guys, kali ini saya akan membagikan sebuah latihan khusus bagi kamu yang sedang mencari
tutorial pemrograman c# , ya kali ini kita akan bicara tentang komunikasi Ethernet. Aplikasi yg saya gunakan adalah Visual Studio guys tapi di SharpDevelop juga bisa kok guys.
Saya bahas sedikit ya tentang komunikasi ethernet, komunikasi ethernet itu adalah
salah satu jenis komunikasi yang paling sering ditemui, bisa digunakan untuk
komunikasi antar PC, PC dengan mikrokontroller, PC dengan PLC, PLC dengan PLC
dll . misal nya saja menggunakan RJ 45. ada juga yang nirkabel dengan
menggunakan wireless router . nah kali ini kita akan mencoba menbuat sebuah
aplikasi chatting teks sederhana menggunakan protocol UDP.
Tahap pertama : kalian harus memiliki software pemrograman berbasis c# contoh visual studio atau microsoft visual c# atau sharpdevelop.
Tahap kedua : kalian desain formnya seperti ini :
Tahap pertama : kalian harus memiliki software pemrograman berbasis c# contoh visual studio atau microsoft visual c# atau sharpdevelop.
Tahap kedua : kalian desain formnya seperti ini :
Tahap ketiga : Kalian deklarasikan using using nya ya guys :D , pada bagian tersebut kita tambahkan :
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Threading;
fungsinya memanggil library yang akan
dipakai sebagai jalur untuk mengakses beberapa fungsi yang diperlukan seperti
penggunaan thread, akses port.
Tahap keempat : deklarasian fungsi AddMessage yang bertipe delegate void, delegate disini digunakan karena adanya pengaksesan sebuah tool (richTextBox) pada 2 buah event yang berbeda.
Tahap keempat : deklarasian fungsi AddMessage yang bertipe delegate void, delegate disini digunakan karena adanya pengaksesan sebuah tool (richTextBox) pada 2 buah event yang berbeda.
delegate void AddMessage(string
message);
kemudian deklarasikan juga variabel “port” yang mana nantinya nilai variabel
ini digunakan sebagai port yang akan digunakan aplikasi untuk mengirimkan dan
menerima data. juga
variabel “broadcastAddress” yang mana nantinya variabel ini digunakan untuk mendefinisikan alamat IP tujuan
variabel “broadcastAddress” yang mana nantinya variabel ini digunakan untuk mendefinisikan alamat IP tujuan
int port = 11000;
const string broadcastAddress
= "192.168.0.255";
dan selanjutnya kita ketik program lengkapnya seperti ini ya guys?
silahkan di coba.
silahkan di coba.
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;
using System.Threading;
namespace PeerToPeerChat
{
public partial class ChatForm : 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 ChatForm()
{
InitializeComponent();
this.Load += new EventHandler(ChatForm_Load);
btnSend.Click += new EventHandler(btnSend_Click);
}
private void
ChatForm_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
btnSend_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
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";
}
}
}
Sekian postingan saya kali ini, semoga bermanfaat dan semoga dapat dikembangkan lagi. Terimakasih :)