Rabu, 11 November 2015

cara membuat program aplikasi chatting via ethernet menggunakan visual studio c# 2010

CARA MEMBUAT PROGRAM APLIKASI CHATTING MENGGUNAKAN
VISUAL STUDIO C# 2010

Assalamualaikum Warohmatulohi Wabarokatuh..
 
Sebelum membuat program aplikasi chatting menggunakan visual basic 2010 alangkah baik nya anda mengenal sejarah microsoft visual basic yang akan di paparkan di bawah ini
berikut sejarah dan perkembangan microsoft visual basic :

1. sejarah
Visual Basic 2010 merupakan salah satu bagian dari produk pemogramana terbaru yang dikeluarkan oleh Microsoft, yakni Microsoft Visual Studio 2010. Visual Studio merupakan produk pemograman andalan dari Microsoft Corporation, di mana di dalamnya berisi beberapa jenis IDE pemograman seperti Visual Basic, Visual C#, Visual C++, Visual Web Developer, & Visual F#.

Semua IDE pemograman tersebut sudah mendukung penuh implementasi .Net Framework terbaru, yaitu .Net Framework 4.0 yang merupakan pengembangan dari .Net Framework 3.5. Adapun database standar yang disertakan adalah Microsoft SQL Server 2008  express.

Visual Basic 2010 merupakan versi perbaikan dan pengembangan dari versi pendahulunya, yakni Visual Basic 2008. Beberapa pengembangan yang terdapat di dalamnya antara lain dukungan terhadap pengembangan aplikasi menggunakan Microsofft SilverLight, dukungan terhadap aplikasi berbasis Cloud Computing, serta perluasan dukungan terhadap database, baik standalone ataupun database server.

Bahasa Visual Basic 2010 sendiri awalnya berasal dari bahasa pemograman yang sangat populer di kalangan programmer komputer, yakni bahasa BASIC, yang oleh Microsoft diadaptasi dalam program Microsoft Quick BASIC. Seiring dengan semakin berkembangnya teknologi komputasi serta desain, Microsoft mengeluarkan produk yang dinamakan Microsoft Visual Studio dengan Visual Basic di dalamnya.

Langkah pertama yang akan kita pelajari adalah IDE (Integrated Development Enviroment) dari visual basic.net. Untuk menjalankan Microsoft Visual Studio 2010 pilih Start --> All Program --> Microsoft Visual Studio 2010. Maka pada layar akan muncul tampilan gambar seperti ini:
 


Untuk membuat project visual basic.net silahkan pilih Menu File --> New Project atau bisa juga dengan menekan tombol CTRL + N. Maka akan muncul sebuah dialog seperti gambar berikut ini:

 Pilih Windows Forms Aplikation, dan beri nama sesuai program yang akan dibuat, sebelumnya pastikan yang dipilih adalah bahasa pemograman visual basic. Setelah itu klik OK maka akan muncul tampilan Visual Basic.Net IDE untuk membangun sebuah aplikasi. Pada IDE Visual Basic.Net untuk WindowsApplication1 akan terdapat sebuah form untuk meletakkan kontrol-kontrol atau komponen untuk menyusun sebuah aplikasi. Form dan kontrol inilah yang sering disebut GUI (Graphical User Interface) atau antar muka dari program visual basic.net.
 

 Sebelum membuat program aplikasi chatting menggunakan visual basic 2010 anda harus mempersiap kan bahan alat dan bahan dengan ketentuan sbb :

1. Alat :
           Pc / Laptop
2. Bahan
           Software microsoft Visual basic 2010
setelah semua peralatan di atas tersebut terpenuhi di atas, ok langsung saja ke pokok pembahasan
mengnai membuat aplikasi chatting menggunakan visual basic 2010 
adalah sebagai berikut :

Program yang akan dibahas terdiri dari dua bagian, yaitu:

1.       Server, sebagai server yang mana semua client akan mengirim pesan ke computer yang ada aplikasi ini dan mem-broadcast semua pesan ke client.

2.       Client, aplikasi yang dipakai oleh user untuk melakukan chat yang akan terhubung ke server.

hal pertama membuat aplikasi chatting via ethernet menggunakan visual sutudio 2010 diantarnya :

1. Membuat server
Pertama bukalah aplikasi Visual Studio C# 2010. Lalu pilih new project. Kemudian pilih Console Application dan berilah nama project chat_server pada bagian bawah form, lalu klik OK.
Setelah itu cobalah masukan kode di bawah ini.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net.Sockets;

using System.Net;

namespace ConsoleApplication1

{

class Program

{

const int portNo = 500;

static void Main(string[] args)

{

//==================================================================

//Mendapatkan Local Machine’s Host Name & IPAddress

//==================================================================

String strHostName = “”;

if (args.Length == 0)

{

// Mendapatkan Ip address dari local machine…

// Pertama cari host name dari local machine.

strHostName = Dns.GetHostName();

Console.WriteLine(“Local Machine’s Host Name: ” + strHostName);

}

else

{

strHostName = args[0];

}

IPHostEntry ipEntry = Dns.GetHostByName(strHostName);

IPAddress[] addr = ipEntry.AddressList;

for (int i = 0; i < addr.Length; i++)

{

Console.WriteLine(“IP Address {0}: {1} “, i, addr[i].ToString());

}

//===================================================================

System.Net.IPAddress localAdd = System.Net.IPAddress.Parse(addr[0].ToString());

TcpListener listener = new TcpListener(localAdd, portNo);

listener.Start();

while (true)

{

ChatClient user = new

ChatClient(listener.AcceptTcpClient());

}

}

}

}

Setelah codding diatas itu selesai di buat, buat class baru dengan nama “ChatClient” dengan cara klik kanan pada nama project seperti di bawah ini.

setelah tampilan di atas akan muncul seperti gambar berikut ini :




 Pilih Class dan jangan lupa beri nama “ChatClient” pada bagian bawah form dan klik Add. Setelah itu coba masukan kode seperti di bawah ini.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net.Sockets;

using System.Collections;

namespace ConsoleApplication1

{

class ChatClient

{

//—berisi daftar semua client—

public static Hashtable AllClients = new Hashtable();

//—informasi tentang client—

private TcpClient _client;

private string _clientIP;

private string _clientNick;

//—digunakan untuk mengirim/menerima data—

private byte[] data;

//—apakah nickname sudah dikirim—

private bool ReceiveNick = true;

public ChatClient(TcpClient client)

{

_client = client;

//—mendapatkan client IP address—

_clientIP = client.Client.RemoteEndPoint.ToString();

//—menambahkan client saat ini ke hash table—

AllClients.Add(_clientIP, this);

//—memulai membaca data dari client pada

// thread terpisah—

data = new byte[_client.ReceiveBufferSize];

client.GetStream().BeginRead(data, 0,

System.Convert.ToInt32(_client.ReceiveBufferSize), ReceiveMessage, null);

}

public void ReceiveMessage(IAsyncResult ar)

{

//—membaca dari client—

int bytesRead;

try

{

lock (_client.GetStream())

{

bytesRead = _client.GetStream().EndRead(ar);

}

//—client tidak tersambung—

if (bytesRead < 1)

{

AllClients.Remove(_clientIP);

Broadcast(_clientNick + ” has left the chat.”);

return;

}

else

{

//—mendapat pesan yang telah dikirim—

string messageReceived = System.Text.Encoding.ASCII.GetString(data, 0, bytesRead);

//—client mengirimkan nicknamenya—

if (ReceiveNick)

{

_clientNick = messageReceived;

//—memberitahu semua client memasuki

// chat—

Broadcast(_clientNick + ” has joined the chat.”);

ReceiveNick = false;

}

else

{

//—memberikan pesan pada semuanya—

Broadcast(_clientNick + “>” + messageReceived);

}

}

//—melanjutkan membaca dari client—

lock (_client.GetStream())

{

_client.GetStream().BeginRead(data, 0,

System.Convert.ToInt32(_client.ReceiveBufferSize),ReceiveMessage,null);

}

}

catch (Exception ex)

{

AllClients.Remove(_clientIP);

Broadcast(_clientNick + ” has left the chat.”);

}

}

public void SendMessage(string message)

{

try

{

//—mengirim text—

System.Net.Sockets.NetworkStream ns;

lock (_client.GetStream())

{

ns = _client.GetStream();

}

byte[] bytesToSend =

System.Text.Encoding.ASCII.GetBytes(message);

ns.Write(bytesToSend, 0, bytesToSend.Length);

ns.Flush();

}

catch (Exception ex)

{

Console.WriteLine(ex.ToString());

}

}

public void Broadcast(string message)

{

//—log secara lokal—

Console.WriteLine(message);

foreach (DictionaryEntry c in AllClients)

{

//—memberi pesan pada semua user—

((ChatClient)(c.Value)).SendMessage(

message + Environment.NewLine);

}

}

}

}

2. Membuat Client
Buatlah project baru dan pilih template Windows Form Application dan berilah nama project tersebut dengan nama “chat” pada bagian bawah form lalu klik OK. Setelah itu, buatlah form seperti pada gambar di bawah ini.

Setelah itu buatlah kode seperti di bawah ini :
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.Sockets;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

const int portNo = 500;

TcpClient client;

byte[] data;

public Form1()

{

InitializeComponent();

}

private void btnSignIn_Click(object sender, EventArgs e)

{

if (btnSignIn.Text == “Sign In”)

{

try

{

//—menghubungkan ke server—

client = new TcpClient();

client.Connect(IPServer.Text, portNo);

data = new byte[client.ReceiveBufferSize];

//—membaca dari server—

SendMessage(txtNick.Text);

client.GetStream().BeginRead(data, 0,

System.Convert.ToInt32(

client.ReceiveBufferSize),

ReceiveMessage, null);

btnSignIn.Text = “Sign Out”;

btnSend.Enabled = true;

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

else

{

//—disconnect dari server—

Disconnect();

btnSignIn.Text = “Sign In”;

btnSend.Enabled = false;

}

}

private void btnSend_Click(object sender, EventArgs e)

{

SendMessage(txtMessage.Text);

txtMessage.Clear();

}

public void SendMessage(string message)

{

try

{

//—mengirim pesan ke server—

NetworkStream ns = client.GetStream();

byte[] data =

System.Text.Encoding.ASCII.GetBytes(message);

//—mengirim text—

ns.Write(data, 0, data.Length);

ns.Flush();

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

public void ReceiveMessage(IAsyncResult ar)

{

try

{

int bytesRead;

//—membaca data dari server—

bytesRead = client.GetStream().EndRead(ar);

if (bytesRead < 1)

{

return;

}

else

{

//—memanggil delegate untuk menampilkan

// data yang diterima—

object[] para = {System.Text.Encoding.ASCII.GetString(data, 0, bytesRead) };

this.Invoke(new delUpdateHistory(UpdateHistory),

para);

}

//—melanjutkan membaca…—

client.GetStream().BeginRead(data, 0,

System.Convert.ToInt32(client.ReceiveBufferSize),

ReceiveMessage, null);

}

catch (Exception ex)

{

//—abaikan error, dibuang ketika pengguna sign off—

}

}

//—delegate dan subroutine untuk mengupdate TextBox control—

public delegate void delUpdateHistory(string str);

public void UpdateHistory(string str)

{

txtMessageHistory.AppendText(str);

}

public void Disconnect()

{

try

{

//—Disconnect dari server—

client.GetStream().Close();

client.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

private void Form_Closing(object sender,FormClosingEventArgs e)

{

Disconnect();

}

}

}

Setelah itu, double clik pada Form1.Designer.cs dan tambahkan kode seperti di bawah ini.

private void InitializeComponent()

{



this.FormClosing += new

System.Windows.Forms.FormClosingEventHandler(this.Form_Closing);

}

Setelah kedua aplikasi diatas (chat server dan client) sudah selesai dibuat, maka program bisa langsung dites pada komputer yang berbeda atau pada satu komputer. Akan tetapi, jika menggunakan satu komputer, aturlah IP address yang diakses oleh client adalah “127.0.0.1” (computer’s loopback address).

    Demikian cara membuat program aplikasi chatting via ethernet menggunakan visual studio c# 2010, kurang lebih nya mohon di maafkan !

Terimakasih ...
wasalamualaikum waroh matulohi wabarokatuh






































Tidak ada komentar:

Posting Komentar