15
Protocol Internet – SMTP, FTP, HTTP, POP3 Dengan perkembangan pemrograman Itenernet dan Client/server, akan membutuhkan pembuatan program secara cepat. Suatu perangat kesatuan perangkat lunak client dan server dalam penggunaan protokol bersama-sama. Protokol adalah kode yang digunakan oleh aplikasi untuk mengirim informasi dalam standarisasi pada aplikasi lain. C++ Builder tersedia komponen untuk membuat program secara cepat. Komponen tersebut terdapat pada : Tab Internet dan FastNet Sabagai contoh untuk program Komponen Internet SMTP, FTP, HTTP, POP dan TCP/IP Pada C++ Builder versi 3 dan 4 semua, component untuk pemrograman internet terdapat pada satu Tab. Untuk C++ Builder versi 5 komponen dibagi menjadi 2 bagian. Pertama bagian tab Internet TClientSocket TServerSocket Komponen Penggunaan TClientSocket Winsock untuk aplikasi client TServerSocket Winsock untuk aplikasi Server TWebDispatcher Data modul untuk perluasan Web Sesver TPageProducer Untuk konversi HTML tamplate ke dokumen HTML

komponen internet

  • Upload
    romadhi

  • View
    3.880

  • Download
    2

Embed Size (px)

Citation preview

Page 1: komponen internet

Protocol Internet – SMTP, FTP, HTTP, POP3

Dengan perkembangan pemrograman Itenernet dan Client/server, akan membutuhkan pembuatan program secara cepat.

Suatu perangat kesatuan perangkat lunak client dan server dalam penggunaan protokol bersama-sama.

Protokol adalah kode yang digunakan oleh aplikasi untuk mengirim informasi dalam standarisasi pada aplikasi lain.

C++ Builder tersedia komponen untuk membuat program secara cepat. Komponen tersebut terdapat pada :

Tab Internet dan FastNet Sabagai contoh untuk program

Komponen Internet SMTP, FTP, HTTP, POP dan TCP/IP

Pada C++ Builder versi 3 dan 4 semua, component untuk pemrograman internet terdapat pada satu Tab. Untuk C++ Builder versi 5 komponen dibagi menjadi 2 bagian. Pertama bagian tab Internet

TClientSocketTServerSocket

Komponen Penggunaan

TClientSocketWinsock untuk aplikasi client

TServerSocketWinsock untuk aplikasi Server

TWebDispatcherData modul untuk perluasan Web Sesver

TPageProducerUntuk konversi HTML tamplate ke dokumen HTML

TQueryTableProducerKonversi daari Query ke tabel HTML

TDataSetTableProducerMangambil konversi dari TDataSet ke dalam Tabel HTML

TDataSetPageProducerMangambil konversi dari TDataSet ke dalam dokumen HTML

TCppWebBrowser Untuk Web Browser terdapat pada aplikasi client

Page 2: komponen internet

Komponen Penggunaan

TNMDayTimemengambil tanggal dan jam dari server Internat atau intranet

TNMMsgMengirim pesan Text ASCII antara internet dan intranet menggunakan protokol TCP/IP

TNMMSGServMenciptakan proses Server pesan TNMMsg

TNMEchoMengirim pesan Text ke Internet echo

TNMFTPMenciptakan FTP client

TNMHTTPHTTP tranfer antara WWW

TNMNNTPmembaca dan mengirim dari internet news articles pada internet dan intranet news

TNMStrmmengirim straem ke straem server antara internat atau intranet

T NMStrmServMenciptakan Stream server untuk membaca stream antara Internet atau intranet

TNMPOP3Menciptakan aplikasi client untuk membaca e-mail menggunakan protokol POP3

TNMSMTPMenciptakan aplikasi Client untuk mengirim e-mail menggunakan protokol SMTP

TNMTimeMengambil tanggal dari Internet atau Intranet

TNMUDP Implementasi dari User Datafgam Protocol (UDP) untuk mengirim paket Datagram antara Internet atau intranet.

TNMURLdeckode URL ke dalam string terbaca oleh user atau encode string ke URL

TNMUUProcessorencode atau decode MIME atau dokumen uuencode

TPowersockdasar kelas untuk beberapa komponen soket FastNet

TNMGeneralServerdasar kelas untuk mebuat multitread server Internet

TNMFingermangabil informasi siapa user dari Internet finger menggunakan Finger Protokol.

Contoh Program

Membuat Chat ServerProgram server suatu apliaksi yang mengatur komunikasi antara client yang satu dengan client yang lainnya.

Pilih menu File | Create New Application

Page 3: komponen internet

Rancanglah seperti form berikut :

Tabel 1. Pengaturan properti

Kompoen Properti NilaiForm Name Form1ServerSocket Name MyServerLabel Name

CaptionLabel1Port

Edit NameText

EditPort1971

Button NameCaption

ButtonStartStart

Button NameCaption

ButtonStopStop

Memo name Memo1

Menulis Kode program

Iniasilasai pada FormCreate :

Klik pada komponen Form Tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnCreate Tuliskan Program berikut :

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender){ ConncectedList = new TStringList();

Page 4: komponen internet

}//---------------------------------------------------------------------------

Kejadian tombol Start ditekan Klik pada komponen tombol Start, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClick Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::ButtonStartClick(TObject *Sender){ MyServer->Port = StrToInt(EditPort->Text); Caption = MyServer->Port; MyServer->Active = true; ButtonStart->Enabled = false; ButtonStop->Enabled = true; EditPort->Enabled= false;

}//---------------------------------------------------------------------------

Kejadian tombol Start ditekan Klik pada komponen tombol Stop, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClick Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::ButtonStopClick(TObject *Sender){ MyServer->Active = false; ButtonStart->Enabled = true; ButtonStop->Enabled= false; EditPort->Enabled= true;}

//---------------------------------------------------------------------------

Menuliskan kode program untuk kopmponen TServerSocketMembaca koneksi dari client :

Klik pada komponen tombol MySever, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClientConnect Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::MyServerClientConnect(TObject *Sender, TCustomWinSocket *Socket){ Memo1->Lines->Add(Socket->RemoteAddress +" Kondisi Koneksi");

Page 5: komponen internet

ConncectedList->AddObject(Socket->RemoteAddress,Socket);

}//---------------------------------------------------------------------------

Katika client memutuskan koneksi Klik pada komponen tombol MySever, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClientDisconnect Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::MyServerClientDisconnect(TObject *Sender, TCustomWinSocket *Socket){ Memo1->Lines->Add(Socket->RemoteAddress +" Kondisi Koneksi"); SendMessage(Format("%s Koneksi Terputus.",OPENARRAY(TVarRec, (ConncectedList->Strings[ConncectedList->IndexOfObject( Socket)])))," Server"); ConncectedList->Delete( ConncectedList->IndexOfObject(Socket));}

//---------------------------------------------------------------------------

Membaca pesan dari client Klik pada komponen tombol MySever, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClientRead Tuliskan Program berikut :

//---------------------------------------------------------------------------

void __fastcall TForm1::MyServerClientRead(TObject *Sender, TCustomWinSocket *Socket){ AnsiString TextIn, cName; int iIndex; TextIn=Socket->ReceiveText(); iIndex=ConncectedList->IndexOfObject(Socket); if (iIndex==-1) return;

TStringList *NamaUser = new TStringList();

if (TextIn.Pos("NamaUser=") == 1) { // memberikan nama user NamaUser->Text = TextIn; ConncectedList->Strings[iIndex]=NamaUser->Values["NamaUser"]; SendMessage(Format("%s Koneksi terputus.",OPENARRAY(TVarRec, (NamaUser->Values["NamaUser"])))," Server"); } else { // kirim pesan cName = ConncectedList->Strings[iIndex];

Page 6: komponen internet

SendMessage(TextIn,cName); } delete NamaUser;}

//---------------------------------------------------------------------------

Tambahkan diklarasi fungsi dan variabel pada file UnitServer.h

//---------------------------------------------------------------------------#ifndef UnitServerH#define UnitServerH

//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include <ScktComp.hpp>#include <sysopen.h>

//---------------------------------------------------------------------------class TForm1 : public TForm{__published: // IDE-managed Components TLabel *Label1; TEdit *EditPort; TButton *ButtonStart; TButton *ButtonStop; TServerSocket *MyServer; TMemo *Memo1; void __fastcall FormCreate(TObject *Sender); void __fastcall ButtonStartClick(TObject *Sender); void __fastcall ButtonStopClick(TObject *Sender); void __fastcall MyServerClientConnect(TObject *Sender, TCustomWinSocket *Socket); void __fastcall MyServerClientDisconnect(TObject *Sender, TCustomWinSocket *Socket); void __fastcall MyServerClientRead(TObject *Sender, TCustomWinSocket *Socket);

private: // User declarations TStringList *ConncectedList; //anda tambahkan ini

public: // User declarations __fastcall TForm1(TComponent* Owner);

// anda tambahkan ini void __fastcall SendMessage(AnsiString Pesan, AnsiString Dari);

};

//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------#endif

Implmentasi Fungsi SendMessage()

Page 7: komponen internet

//---------------------------------------------------------------------------void __fastcall TForm1::SendMessage(AnsiString Pesan, AnsiString Dari){ for(int i=0; i<MyServer->Socket->ActiveConnections; i++) { if (Dari == " Server") MyServer->Socket->Connections[i]->SendText( Format("%s",OPENARRAY(TVarRec,(Pesan)))); else MyServer->Socket->Connections[i]->SendText( Format("%s dari : %s",OPENARRAY(TVarRec,(Dari,Pesan)))); }}//---------------------------------------------------------------------------

Aplikasi Client

Pilih menu File | Create New Application Rancanglah seperti form berikut :

Kompoen Properti NilaiForm Name Form1Label1 Name

CaptionLabel1Nama user

Label2 NameCaption

Label2Port

Label1 NameCaption

Label3Nama user

Page 8: komponen internet

Edit Name EditUserEdit Name EditPortEdit Name EditServerClientSockset Name MySocketMemo Name MemoInMemo Name MemoOutButton Name

CaptionButtonConnectConnect

Button NameCaption

ButtonDisconnectDisonnect

Katika MySoket koneksi Klik pada komponen tombol MySocket, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnConnect Tuliskan Program berikut :

void __fastcall TForm1::MySocketConnect(TObject *Sender, TCustomWinSocket *Socket){ MemoIn->SetFocus(); MemoIn->Lines->Add("Koneksi........."); MemoOut->SetFocus(); MySocket->Socket->SendText(EditUser->Text);}

Katika MySoket baca Klik pada komponen tombol MySocket, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnRead Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::MySocketRead(TObject *Sender, TCustomWinSocket *Socket){ MemoIn->SetFocus(); MemoIn->Lines->Add(Socket->ReceiveText()); MemoOut->SetFocus(); }

//----------------------------------------------------------------------

Katika Tombol Connect ditekan Klik pada komponen tombol Connect, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClick Tuliskan Program berikut :

Page 9: komponen internet

//---------------------------------------------------------------------------void __fastcall TForm1::ButtonConnectClick(TObject *Sender){ MySocket->Address = EditServer->Text; MySocket->Port =StrToInt(EditPort->Text); MySocket->Active = true; ButtonConnect->Enabled = false; ButtonDConnect->Enabled = true; MemoOut->Enabled=true;

}//---------------------------------------------------------------------------

Katika Tombol Disconnect ditekan Klik pada komponen tombol Disconnect, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnClick Tuliskan Program berikut :

/---------------------------------------------------------------------------void __fastcall TForm1::ButtonDConnectClick(TObject *Sender){ ButtonConnect->Enabled = true; ButtonDConnect->Enabled = false; MemoOut->Enabled=false;}//---------------------------------------------------------------------------

Katika user mengetikan pesan pada komponen MemoOut Klik pada komponen tombol MemoOut, tekan F11 Object Inspector pilih tab Event Tekan klik ganda pada OnKeyPress Tuliskan Program berikut :

//---------------------------------------------------------------------------void __fastcall TForm1::MemoOutKeyPress(TObject *Sender, char &Key){ if(Key == VK_RETURN) { MySocket->Socket->SendText(MemoOut->Text); MemoOut->Lines->Clear(); Key=0; }}

//---------------------------------------------------------------------------

kode if(Key == VK_RETURN) adalah jika tombol enter ditekan data akan ditampilkan pada MemoOut

File header UnitClien.h

Page 10: komponen internet

/---------------------------------------------------------------------------#ifndef UnitClientH#define UnitClientH//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include <ScktComp.hpp>//---------------------------------------------------------------------------class TForm1 : public TForm{__published: // IDE-managed Components TLabel *Label1; TLabel *Label2; TLabel *Label3; TEdit *EditUser; TEdit *EditPort; TEdit *EditServer; TClientSocket *MySocket; TButton *ButtonConnect; TButton *ButtonDConnect; TMemo *MemoOut; TMemo *MemoIn; TLabel *Label4; void __fastcall ButtonConnectClick(TObject *Sender); void __fastcall ButtonDConnectClick(TObject *Sender); void __fastcall MySocketConnect(TObject *Sender, TCustomWinSocket *Socket); void __fastcall MemoOutKeyPress(TObject *Sender, char &Key); void __fastcall MySocketRead(TObject *Sender, TCustomWinSocket *Socket);private: // User declarationspublic: // User declarations __fastcall TForm1(TComponent* Owner);};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif

Cara Manguji program

Jalankan aplikasi server, setelan anda kompitalasi jadi ProjectServer.EXE klik lewat Explorer

Page 11: komponen internet

Klik tombol Star

Jalankan Aplikasi Client Serperti Gambar berikut :Isikan user, no port, ip atau nama server tekan tommbol Connect

Amati pada program server :

Page 12: komponen internet