Aplikasi Chatting dengan Borland C++ Builder (Server Side)

9 02 2009

Salah satu contoh penerapan Socket dalam aplikasi adalah Aplikasi Chatting (Server dan Client).

Chatting dua arah antara Client dan Server.
Di sini akan dibangun aplikasi Chat Sederhana dengan mempergunakan bahasa pemrograman Borland C++ Builder.

Yang perlu di persiapkan antara lain :
* Tentu saja master “Borland C++ Builder” penulis menggunakan Borland C++ Builder 6 untuk membangun aplikasi saat ini.

* Desaign interface untuk Server di desain seperti gambar di bawah ini

server

Pada desain di atas terdapat
– 1 server socket
– 2 button (send dan start)
– 2 textfield
– 1 Memo

objek lainnya dapat ditambahkan sendiri,,,objek-objek yang saya sebutkan diatas merupakan objek penting yang berkaitan dengan codding program.

Pada Server Socket terdapat tiga event :
1. event OnClientConnect, yg isinya

//—————————————————————————
void __fastcall TForm1::ssClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString temp;
temp=Socket->RemoteAddress;
int i;
for(i=0;i<ss->Socket->ActiveConnections;i++)
{
ss->Socket->Connections[i]->SendText(temp+”Terhubung”);
}
Memo1->Lines->Add(temp+” Terhubung !!!”);
}
}
//—————————————————————————

Jadi, pada event OnClientConnect, dideklaasikan sebuah variabel temp dengan tipe AnsiString, variabel ini kemudian diberi nilai Socket->RemoteAddress; yang merupakan alamat IP (IP Address) dari tiap client yang akan terhubung ke server ini.

2. event OnClientRead
//—————————————————————————
void __fastcall TForm1::ssClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int i;
AnsiString temp,temp2; //untuk temporarinya
temp=Socket->ReceiveText();
temp2=Socket->RemoteAddress;
for(i=0;iSocket->ActiveConnections;i++)
{
ss->Socket->Connections[i]->SendText(temp2+”:”+temp);
}
Memo1->Lines->Add(temp2+”:”+temp);
}
//—————————————————————————

Sedangkan pada event OnClientRead, dideklarasikan dua buah variabel AnsiString (temp, temp2). temp=Socket->ReceiveText();  // temp berisi pesan yang diterima server dari client
temp2=Socket->RemoteAddress; //temp2 berisi ip address dari client

3. event OnListen
//—————————————————————————
void __fastcall TForm1::ssListen(TObject *Sender, TCustomWinSocket *Socket)
{
Memo1->Lines->Add(“Server Ready!!!”);//artinya di memo ditambahkan pada memo saat server listen karena onlisten
}
//—————————————————————————

untuk button Start event Onclick, masukan codding berikut :

void __fastcall TForm1::btStartClick(TObject *Sender)
{
ss->Port=StrToInt(txtPort->Text);
ss->Open();
}

==================================
keterangan :
ss->Port=StrToInt(txtPort->Text);
ss= nama Server Socket yang kita buat sendiri,
txtPort = nama textfield yang berisi port dari server yang aktif,

syntax Port=StrToInt(txtPort->Text); dilakukan karena port berupa angka sedangkan textfield berupa string sehingga nilainya harus di parsing dari string ke integer.

syntax ss->Open(); // mengaktifkan server socket

Sementara untuk button Send, masukan penggalan codding berikut :

void __fastcall TForm1::btSendClick(TObject *Sender)
{
for(int i=0;i<ss->Socket->ActiveConnections;i++){
ss->Socket->Connections[i]->SendText(txtSend->Text);
}

Memo1->Lines->Add(txtSend->Text);
}

button send digunakan untuk mengirim pesan yang diisi pada txtfield dalam kasus ini testfieldnya bernama ‘txtSend’,  dari server ke client.

setelah semua siap maka anda telah berhasil membuat aplikasi chat untuk server (server side)

Nb : perhatikan nama dari tiap objek yang ada pada aplikasi yang anda ciptakan. Nama objek bisa saja berbeda tergantung dari penamaan anda…!!!

Aplikasi diatas belum dapat difungsikan dengan baik, sebelum aplikasi Client diciptakan.
Untuk aplikasi Client akan di Jelaskan kemudian…

Selamat Mencoba..!!!
^___________^V

–t47a–

Advertisements

Actions

Information

19 responses

9 02 2009
t47a

oiyah…
teman2 ,, untuk aplikasi server d atas Port nya saya kasih 8000…
Portnya bisa berapa saja tergantung temen2 mo ngasih berapa,dengan catatan diatas angka 5000 yach…

‘coz yg d bawah 5000 dah dipakai buat aplikasi2 lain
for example
port 80 untuk web, port 23 untuk telnet dll

yang penting nantinya pada aplikasi Client Side kita tentukan nomor port yang sama dengan yang sudah didefenisikan pada server side.

Okeyyy
Got it..???!!!
sorry kelupa jadi d tambah d comment aje… hehehhihiihihhiiii

9 02 2009
adhi

wogh…
ga nyangka asisten yg 1 ini emang baek…
mau nolong anak didik nya..wkawkakw
tapi saia minta jadi nya aja ya bsk..OK !!! ^_^V

9 02 2009
t47a

wah…wah…wah….
maunya yach… ^_^V

bayar dong..hehehe

9 02 2009
adhi

akyu ga ada borlan…
jadi bsk minta jadi nya aja.. 😛
hahaha

walah klo bayar berarti ni bantu nya pake pambrih dunk…
ga boleh ama yg d atas lho bantu2 pake pamrih…hahaha

9 02 2009
Shun

Apakah ini untuk TA-nya?

9 02 2009
t47a

@Shun
bukan mas,, ni cuma salah satu tgs PrOgJar q dulu…
TA nya lebih complex dari ini.. ^^V
tapi yach emang TA q ada hubungannya ma Socket!!! ^0^

28 02 2009
hasyim

bleh jg…

gimana dengan aplikasi untuk clientny??

5 03 2009
arif

hebat:)
artikelnya sangat membantu,
di banyakin ya….tutorialnya…..

22 07 2009
regar

TA q jg da hubungn na dng socket pake c++ builder 6….
salam knal nie sesama pmakai c builder…
gimana klo kita sharing…

23 07 2009
t47a

@Regar
ohhh.. sama y kalo gitu….
TA q dah selesai…. sekarang saya sdh lulus…. ^_^V

8 10 2009
Budi

Saya memerlukan orang yang bisa menggunakan program borland c++…jika ada yang berminat dapat hubungi saya di email : yusak@indotamaprima.com.

18 10 2009
t47a

thanx

13 10 2009
yusef

bisa ajarin saya g…, msalah harga terserah wes….
pleace….

18 10 2009
t47a

boleh…. saya ajari semampu saya…

26 02 2011
Deo

wah…
bagus bgt nih mas tutornya..
sangat membantu..
kebetulan lagi nyari2 yg bginian…

oh iya, cuma mengoreksi sedikit..
yang OnClientRead-nya ada yg salah dikit tuh…
for(i=0;iSocket->ActiveConnections;i++)
harusnya
for(i=0;iSocket->ActiveConnections;i++)
ada bagian yg terhapus..

26 02 2011
Tasya Latubessy

makasi koreksinya, iya itu ada yg kurang diketik harusnya
for(i=0;i ‘kurang dari’ ss-> Socket ->ActiveConnections;i++)

catatan ‘kurang dari’ diganti dengan tanda ‘<'

oh iya, cuma mengoreksi sedikit saya 'mbak' bukan 'mas' 🙂
thanx..

18 03 2011
Deo

walah,,,
ternyata otomatis berubah ya tulisannya 😀
yg aku tulis juga jadi salah tuh..
hehe..

oh, mbak toh..
maaf mas, eh.. mbak, gak tau :p

mo tanya nih mbak,
gimana kalo mo buat aplikasi yg bisa akses database ke server internet???
aku mo blajar buat aplikasi chat, tp yg bener2 online gitu..
hehe..

mbak, add ym aku ya,
mo nanya lebih lanjut nih..
deo_rayyan

makasih sebelumnya mbak 🙂

11 06 2011
mirantika anggraeni

makasi byk mbak 🙂
sangat membantu

13 06 2011
Tasya Latubessy

sama-sama

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: