praktikum tugas 1 perancangan program client dengan port 32 · laporan praktikum matakuliah ......
TRANSCRIPT
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 1 dari 40
Praktikum Tugas 1 Perancangan Program Client
dengan Port 32 Form dari pada client adalah sebagai berikut :
Jika server belum aktif maka tampil :
Progamnya adalah :
Tampilan dalam posisi terhubung dengan server, dengan pesan angka dari scrollbar senilai 46.
Jika Server sudah Aktif maka tampilannya adalah :
Input data Numerik melalui Scrolbar
Input data String melalui Edit text
Mengirim data melalui
cekbox
Bentuk shortcat dari pada socket
Default status adalah “Not Connection to
Server”
if checkbox1.Checked=false then
begin label6.Caption:='Port '+inttostr(clientsocket1.port)+' Off'; edit3.Text:='Not Connect to Server'; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 2 dari 40
Properties adalah sebagai berikut :
Keterangan :
Socket yang digunakan adalah Port 32, karena localhost Port 80 untuk HTTP (Hyper Text Transfer Protocol) Port 21 untuk FTP (File Transfer Protocol) Port 25 untuk SMPT (Simple Mail Transfer Protocol) Port 110 untuk POP3 (Post Protocol Versi 3) Port 23 untuk Telnet Port 50 untuk Wifi
Cara untuk mengaktifkan Conection ke Server melalui port 32 adalah :
Adapun data yang dikirim ke server melalui 2 cara, yaitu : 1. Cara numeric yang dirobah ke string dari scrollbar 2. Cara input data melalui text edit
Adapun logikanya adalah seperti berikut :
if label4.caption='' then
socket.SendText(edit1.text); else
socket.SendText(inttostr(scrollbar1.position))
clientsocket1.active:=True;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 3 dari 40
Program client secara lengkap adalah sebagai berikut :
Bersambung…….
procedure TForm1.CheckBox2Click(Sender: TObject);
begin if checkbox1.Checked=false then begin label6.Caption:='Port '+inttostr(clientsocket1.port)+' Off'; label7.Caption:='IP...: '+edit2.Text; label8.Caption:='Host.: '+clientsocket1.host; edit3.Text:='Not Connect to Server'; clientsocket1.Active:=false ; scrollbar1.Enabled:=true; edit1.enabled:=true; edit2.Enabled:=true; checkbox1.Caption:='Kirim' ; end;
if checkbox1.Checked=true then begin label7.Caption:='IP...: '+edit2.Text; label8.Caption:='Host.: '+clientsocket1.host; label6.Caption:='Port '+inttostr(clientsocket1.port)+' On'; edit3.Text:='Connect'; clientsocket1.Active:=true ; checkbox1.Caption:='Ready' ; scrollbar1.Enabled:=false; edit1.enabled:=false; edit2.Enabled:=false; end; end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Status:=socket.ReceiveText; edit3.Text:=Status; if Status= 'KIRIM' then if label4.caption='' then begin socket.SendText(edit1.text); end else socket.SendText(inttostr(scrollbar1.position)) end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 4 dari 40
Bersambung. …….
unit Uclient1;
interface uses Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, ExtCtrls,
jpeg, Grids, ValEdit; type TForm1 = class(TForm) Image1: TImage; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit2: TEdit; Edit3: TEdit; CheckBox1: TCheckBox; Edit1: TEdit; ScrollBar1: TScrollBar; ClientSocket1: TClientSocket; Button1: TButton; Label6: TLabel; Label7: TLabel; Label8: TLabel; CheckBox2: TCheckBox; procedure CheckBox2Click(Sender: TObject); procedure ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket); procedure ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket); procedure ScrollBar1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Status:string; implementation {$R *.dfm}
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 5 dari 40
procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); begin {Status:=socket.ReceiveText; edit3.Text:=Status; Socket.SendText(edit1.text);} end;
procedure TForm1.ScrollBar1Change(Sender: TObject); begin label4.Caption:=inttostr(scrollbar1.position); edit1.enabled:=false; end;
procedure TForm1.Button1Click(Sender: TObject); begin
close; checkbox2.Checked:=False; checkbox1.Checked:=False; clientsocket1.active:=false; end;
procedure TForm1.Edit1Change(Sender: TObject); begin scrollbar1.Enabled:=false; end;
procedure TForm1.FormCreate(Sender: TObject); begin if clientsocket1.active=false then begin checkbox2.Checked:=false; label6.Caption:='SERVER BELUM AKTIF'; edit3.Text:='Server belum aktive'; checkbox2.Checked:=False; end; if clientsocket1.active=True then begin checkbox2.Checked:=true; label6.Caption:='SERVER AKTIF';
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 6 dari 40
Perancangan Program Server dengan Port 32
Untuk sebagai pembuktian dari pada berhasilnya program client diatas dengan menggunakan port 32, maka akan dibuat program connection server. Namun dalam hal ini hanya sebagai pembuktian, untuk penjelasan selanjutnya akan dibahas pada Tugas berukutnya.
Adapun form dari pada server diatas adalah sebagai berikut :
Dikatakan server dikarenakan pada form ini terdapat fasilitas socket server, adapun property dari socket server adalah :
Pada server harus ditetntukan kode kode kesalahan pesan, adapu kesalahan pesan yang dikodekan adalah :
Pesan yang terkirim
Port yang menghubungi
Socket Server
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin
pesan:=socket.ReceiveText; edit1.Text:=pesan; if pesan = '0' then
edit3.Text:= 'UNDERLIMIT' else if pesan= '128' then
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 7 dari 40
Sebagai Responding, jika client tidak ada yang menghubungi maka harus di definisikan seperti sebagai berikut :
Adapun Program Selengkapnya adalah sebagai berikut :
Bersambung…….
edit3.Text:= 'DEFAULT' else if pesan= '255' then
edit3.Text:= 'UPPERLIMIT' else
edit3.Text:= 'UNKNOWN'; serversocket1.Socket.Connections[0].SendText('KIRIM'); end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin edit2.Text:='OFF'; end;
unit Userver1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; ServerSocket1: TServerSocket; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Button1: TButton; Label4: TLabel; procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 8 dari 40
var Form1: TForm1; pesan:string; implementation {$R *.dfm}
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin
edit1.Text:= serversocket1.Socket.Connections[0].RemoteAddress; edit2.Text:='ON'; serversocket1.Socket.Connections[0].SendText('KIRIM');
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin
pesan:=socket.ReceiveText; edit1.Text:=pesan; if pesan = '0' then
edit3.Text:= 'UNDERLIMIT' else if pesan= '128' then
edit3.Text:= 'DEFAULT' else if pesan= '255' then
edit3.Text:= 'UPPERLIMIT' else
edit3.Text:= 'UNKNOWN'; serversocket1.Socket.Connections[0].SendText('KIRIM'); end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin
edit2.Text:='OFF'; end;
procedure TForm1.Button1Click(Sender: TObject); begin
CLOSE; end;
procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); begin end; end.
Text yang dikirim ke client jika telah
terkoneksi, dan pengiriman
berhasil
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 9 dari 40
Tampilan Jika dihubungkan dengan mengaktifkan form client dan server, dengan mengirim text melalui Text Edit.
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 10 dari 40
Praktikum Tugas 2 Perancangan Program Chatting
dengan Port 50
PROGRAM CLIENT Pada chatting perlu dibuat program clien yang perinsipnya sama dengan program diatas, namun dalam hal ini akan menggunakan port 50, form pada clinet adalah sebagai berikut :
Untuk Mengaktifkan conection ke server maka progamnya adalah sebagai berikut :
Text yang dikirim adalah berada pada Edit text pada panel pesan, dimana programnya adalah sebagai berikut :
procedure TForm1.CheckBox1Click(Sender: TObject);
begin if not ClientSocket1.Active then ClientSocket1.Address := Edit1.Text; ClientSocket1.Active := CheckBox1.Checked; end;
procedure TForm1.Button1Click(Sender: TObject);
begin ClientSocket1.Socket.SendText(Edit2.Text); end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 11 dari 40
Program secara lengkap adalah sebagai berikut :
Bersambung….
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ScktComp;
type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; CheckBox1: TCheckBox; ClientSocket1: TClientSocket; Button2: TButton; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit2Change(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Edit2.Text); end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 12 dari 40
Tampilan dari Program tersebut adalah sebagai berikut :
procedure TForm1.CheckBox1Click(Sender: TObject);
begin if not ClientSocket1.Active then ClientSocket1.Address := Edit1.Text; ClientSocket1.Active := CheckBox1.Checked; end;
procedure TForm1.FormActivate(Sender: TObject); begin Edit1.Clear; Edit2.Clear; end;
procedure TForm1.Button2Click(Sender: TObject); begin CLOSE; end;
procedure TForm1.Edit2Change(Sender: TObject); begin
end;
end.
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 13 dari 40
Perancangan Program Chatting dengan Port 50
PROGRAM SERVER Pada program server catting ini kita harus banyak membuat fasilitas antara lain :
Seedbutton:
Spedbutton berfungsi untuk menghubungkan ke client secara terus menerus, dan menerima connection dari client yang menghubungi server secara otomatis dilayani. Dan menerima informasi serta memasukkannya ke dalam item memo, setiap aktifitas yang dilakukan karena bertindak sebagai host.
Adapun bentuk speedbutton adalah sebagai berikut :
Listing program yang ada didalam speedbutton adalah :
Speedbutton
procedure TChatForm.FileConnectItemClick(Sender: TObject);
begin if ClientSocket.Active then ClientSocket.Active := False; if InputQuery('Computer to connect to', 'Address Name:', Server) then if Length(Server) > 0 then with ClientSocket do begin Host := Server; Active := True; FileListenItem.Checked := False; end; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 14 dari 40
Socket Client Socket client disini berfungsi untuk mengetahui aktifitas dari host lain dan akan dimasukkan ke dalam item memo sebagai query, adapun property dari item socket ini adalah sebagai berikut :
Dan listing programnya adalah sebagai berikut :
procedure TChatForm.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteHost; end;
procedure TChatForm.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Add(Socket.ReceiveText); end;
procedure TChatForm.ClientSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin FileListenItemClick(nil); end;
procedure TChatForm.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Memo2.Lines.Add('Error connecting to : ' + Server); ErrorCode := 0; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 15 dari 40
Socket Server Server socket disini adalah untuk melalani kegiatan dari pada client dan akan dimasukkan ke dalam memo sebagai query. Adapun property dari pada server socket ini adalah sebagai berikut :
Dan programnya adalah sebagai berikut :
procedure TChatForm.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket); begin Memo2.Lines.Add(Socket.ReceiveText); end;
procedure TChatForm.ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket); begin IsServer := True; Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress; end;
procedure TChatForm.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Clear; end;
procedure TChatForm.ServerSocketClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'Listening...'; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 16 dari 40
Main menu Main menu dalam program ini berfungsi sebagai control dari hubungan dan aktifitas dari pada client yang melakukan chatting, pada main menu ini terdapat beberapa fasilitas seperti Tampilkan
Untuk menampilkan data yang melakukan chating pada query server sebagai host.
Programnya adalah sebagai berikut :
Hubungkan
Untuk melakukan connection dengan beberapa client yang akan melakukan,sehingga client dapat berfungsi sebagai chatting.
Programnya adalah sebagai berikut :
procedure TChatForm.FileListenItemClick(Sender: TObject);
begin FileListenItem.Checked := not FileListenItem.Checked; if FileListenItem.Checked then begin ClientSocket.Active := False; ServerSocket.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; end else begin if ServerSocket.Active then
ServerSocket.Active := False; Statusbar1.Panels[0].Text := ''; end; end;
procedure TChatForm.FileConnectItemClick(Sender: TObject);
begin if ClientSocket.Active then ClientSocket.Active := False; if InputQuery('Computer to connect to', 'Address Name:', Server) then if Length(Server) > 0 then with ClientSocket do begin Host := Server; Active := True; FileListenItem.Checked := False; end; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 17 dari 40
Putuskan Hubungan
Untuk melakukan memutuskan connection dengan beberapa client yang akan melakukan,sehingga client tidak dapat berfungsi sebagai chatting.
Programnya adalah sebagai berikut :
Keluar
Untuk keluar dari pada main menu, sehingga form aktifitas host tidak berfungsi lagi
Programnya adalah sebagai berikut :
Adapun menu dari pada main menu ini adalah sebagai berikut :
Dan property dari main menu adalah :
procedure TChatForm.Disconnect1Click(Sender: TObject); begin ClientSocket.Active := False; ServerSocket.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; end;
procedure TChatForm.Exit1Click(Sender: TObject);
begin Application.Restore; ServerSocket.Close; ClientSocket.Close;
Close; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 18 dari 40
Memo
Memo berfungsi untuk mencatat berbagai aktifitas chatting, dan memo server berfungsi untuk mencatat aktifitas client, sedangkan memo client berfungsi untuk mencatat client yang terkoneksi.
Adapun property dari memo server adalah sebagai berikut :
Form dari Server adalah sebagai berikut :
Memo Client
Memo Server
Main Menu
Socket Server
Socket Client
Speedbutton
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 19 dari 40
Listing Program lengkap adalah :
Bersambung…..
unit main;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Buttons, ScktComp, ExtCtrls, ComCtrls;
type TChatForm = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; FileConnectItem: TMenuItem; FileListenItem: TMenuItem; StatusBar1: TStatusBar; Bevel1: TBevel; Panel1: TPanel; Memo1: TMemo; Memo2: TMemo; N1: TMenuItem; SpeedButton1: TSpeedButton; Disconnect1: TMenuItem; ServerSocket: TServerSocket; ClientSocket: TClientSocket; Button1: TButton; procedure FileListenItemClick(Sender: TObject); procedure FileConnectItemClick(Sender: TObject);
procedure Exit1Click(Sender: TObject); procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure ServerSocketError(Sender: TObject; Number: Smallint; var Description: string; Scode: Integer; const Source, HelpFile: string; HelpContext: Integer; var CancelDisplay: Wordbool); procedure Disconnect1Click(Sender: TObject); procedure ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ServerSocketClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure Memo1Change(Sender: TObject);
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 20 dari 40
Bersambung…..
procedure Memo2Change(Sender: TObject);
protected IsServer: Boolean; end; var ChatForm: TChatForm; Server: String; implementation {$R *.DFM} procedure TChatForm.FileListenItemClick(Sender: TObject); begin FileListenItem.Checked := not FileListenItem.Checked; if FileListenItem.Checked then begin ClientSocket.Active := False; ServerSocket.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; end else begin if ServerSocket.Active then ServerSocket.Active := False; Statusbar1.Panels[0].Text := ''; end; end; procedure TChatForm.FileConnectItemClick(Sender: TObject); begin if ClientSocket.Active then ClientSocket.Active := False; if InputQuery('Computer to connect to', 'Address Name:', Server) then if Length(Server) > 0 then with ClientSocket do begin Host := Server; Active := True; FileListenItem.Checked := False; end; end; procedure TChatForm.Exit1Click(Sender: TObject); begin Application.Restore; ServerSocket.Close; ClientSocket.Close; Close; end; procedure TChatForm.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Return then if IsServer then
ServerSocket.Socket.Connections[0].SendText(Memo1.Lines[Memo1.Lines.Count - 1])
else ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]);
end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 21 dari 40
Bersambung……….
procedure TChatForm.FormCreate(Sender: TObject);
begin FileListenItemClick(nil); end; procedure TChatForm.ServerSocketError(Sender: TObject; Number: Smallint; var Description: string; Scode: Integer; const Source, HelpFile: string; HelpContext: Integer; var CancelDisplay: Wordbool); begin ShowMessage(Description); end; procedure TChatForm.Disconnect1Click(Sender: TObject); begin ClientSocket.Active := False; ServerSocket.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; end; procedure TChatForm.ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteHost; end; procedure TChatForm.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Add(Socket.ReceiveText); end; procedure TChatForm.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Add(Socket.ReceiveText); end; procedure TChatForm.ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket); begin IsServer := True; Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress; end; procedure TChatForm.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Clear; end; procedure TChatForm.ClientSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin FileListenItemClick(nil); end; procedure TChatForm.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Memo2.Lines.Add('Error connecting to : ' + Server); ErrorCode := 0; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 22 dari 40
Tampilan dari pada Server Chatting adalah sebagai berikut :
procedure TChatForm.ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'Listening...'; end;
procedure TChatForm.Button1Click(Sender: TObject); begin close; end;
procedure TChatForm.Memo1Change(Sender: TObject);
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 23 dari 40
Praktikum Tugas 3 Perancangan Program
Client-Server dengan Port 50
Program Client Pemrograman untuk server client sama dengan program diatas, namun dalam hal ini, client dapat masuk ke server karena server memiliki beberapa layanan untuk terkoneksi seperti client type non bloking, dan dapat aktif berulang-ulang menghubungi server lainnya, serta pengirman dengan conection dipisahkan..
Adapun listing program untuk checkbox-nya adalah :
Property dari Socket client adalah :
procedure TFormClient.CheckBoxKoneksiKeServerClick(Sender: TObject);
begin if CheckBoxKoneksiKeServer.Checked=True then begin editPesan.Enabled:=false; editIPAddress.enabled:=false; end; editPesan.Enabled:=true; editIPAddress.enabled:=true;
if CheckBoxKoneksiKeServer.Checked then begin ClientSocketKirim.Host := EditIPaddress.Text; ClientSocketKirim.Port := 50; ClientSocketKirim.Active := True; end else begin ClientSocketKirim.Active := False; end; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 24 dari 40
Program Pengiriman adalah sebagai berikut :
Form untuk clien adalah sebagai berikut :
Program lengkap untuk clien adalah sebagai berikut :
Bersambung…..
procedure TFormClient.ButtonSendClick(Sender: TObject);
begin if Trim(EditPesan.Text) <> '' then ClientSocketKirim.Socket.SendText(EditPesan.Text); end;
unit clientunitfotm;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, JvExControls, JvComCtrls, ScktComp;
type TFormClient = class(TForm) CheckBoxKoneksiKeServer: TCheckBox; ClientSocketKirim: TClientSocket; EditIPaddress: TJvIPAddress; Label1: TLabel; EditPesan: TLabeledEdit; BitBtn1: TBitBtn; ButtonSend: TButton; Label2: TLabel; Label3: TLabel; procedure CheckBoxKoneksiKeServerClick(Sender: TObject); procedure ButtonSendClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ClientSocketKirimConnect(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;
var FormClient: TFormClient;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 25 dari 40
implementation
{$R *.dfm}
procedure TFormClient.CheckBoxKoneksiKeServerClick(Sender: TObject); begin if CheckBoxKoneksiKeServer.Checked=True then begin editPesan.Enabled:=false; editIPAddress.enabled:=false; end; editPesan.Enabled:=true; editIPAddress.enabled:=true;
if CheckBoxKoneksiKeServer.Checked then begin ClientSocketKirim.Host := EditIPaddress.Text; ClientSocketKirim.Port := 50; ClientSocketKirim.Active := True; end else begin ClientSocketKirim.Active := False; end; end;
procedure TFormClient.ButtonSendClick(Sender: TObject); begin if Trim(EditPesan.Text) <> '' then ClientSocketKirim.Socket.SendText(EditPesan.Text); end;
procedure TFormClient.FormCreate(Sender: TObject); begin
end;
procedure TFormClient.ClientSocketKirimConnect(Sender: TObject; Socket: TCustomWinSocket); begin
end;
end.
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 26 dari 40
Program Server Server merupakan connection control dari client, sehingga client dapet menghubungi server secara berulang-ulang, sebelum pesan terkirim, serta server dapat melihat client yang terhubung, melalui conectionshape dengan warna default Merah jika tidak tidak ada client yang terkoneksi, tetap jika ada client yang terkoneksi maka langsung berubah warnanya menjadi biru.
Programnya dalah sebagai berikut :
Untuk mengaktifkan server dengan menggunakan checkbox adalah :
procedure TFormServerUtama.WMREFRESHCLIENT(var Msg: TMessage);
var BandingServer : TCustomWinSocket; i : Integer; begin for i := 0 To ServerSocketKirim.Socket.ActiveConnections - 1 do begin BandingServer := ServerSocketKirim.Socket.Connections[i]; if Server1 = BandingServer then begin ShapeConnect1.Brush.Color := clBlue; EditClientFrom1.Text := BandingServer.RemoteHost; end; if Server2 = BandingServer then begin ShapeConnect2.Brush.Color := clBlue; EditClientFrom2.Text := BandingServer.RemoteHost; end; if Server3 = BandingServer then begin ShapeConnect3.Brush.Color:= clBlue; EditClientFrom3.Text := BandingServer.RemoteHost; end; end; end;
Procedure TFormServerUtama.CheckBoxAktifkanServerClick(Sender: TObject);
begin if CheckBoxAktifkanServer.Checked then begin ServerSocketKirim.Active := True;
end else begin ServerSocketKirim.Active := False; end; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 27 dari 40
Bentuk form untuk server adalah :
Program selengkapnya adalah :
Bersambung……
unit formutamaunit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ScktComp; const WM_REFRESHCLIENT = WM_USER + 100; type
TFormServerUtama = class(TForm) GroupBox1: TGroupBox; ShapeConnect1: TShape; EditClientFrom1: TLabeledEdit; EditData1: TLabeledEdit; GroupBox2: TGroupBox; ShapeConnect2: TShape; EditClientFrom2: TLabeledEdit; EditData2: TLabeledEdit; GroupBox3: TGroupBox; ShapeConnect3: TShape; EditClientFrom3: TLabeledEdit;
EditData3: TLabeledEdit; BitBtn1: TBitBtn; CheckBoxAktifkanServer: TCheckBox; ServerSocketKirim: TServerSocket;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 28 dari 40
Bersambung….
Label1: TLabel; procedure CheckBoxAktifkanServerClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ServerSocketKirimClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketKirimClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketKirimClientRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } Server1, Server2, Server3 : Pointer; procedure WMREFRESHCLIENT(VAR Msg : TMessage ); message WM_REFRESHCLIENT; public { Public declarations } end; var FormServerUtama: TFormServerUtama; implementation uses StdConvs; {$R *.dfm} procedure TFormServerUtama.CheckBoxAktifkanServerClick(Sender: TObject); begin if CheckBoxAktifkanServer.Checked then begin ServerSocketKirim.Active := True; end else begin ServerSocketKirim.Active := False; end; end;
procedure TFormServerUtama.WMREFRESHCLIENT(var Msg: TMessage); var BandingServer : TCustomWinSocket; i : Integer; begin for i := 0 To ServerSocketKirim.Socket.ActiveConnections - 1 do begin BandingServer := ServerSocketKirim.Socket.Connections[i]; if Server1 = BandingServer then begin ShapeConnect1.Brush.Color := clBlue; EditClientFrom1.Text := BandingServer.RemoteHost; end; if Server2 = BandingServer then begin ShapeConnect2.Brush.Color := clBlue; EditClientFrom2.Text := BandingServer.RemoteHost; end; if Server3 = BandingServer then begin ShapeConnect3.Brush.Color := clBlue; EditClientFrom3.Text := BandingServer.RemoteHost;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 29 dari 40
Bersambung…..
end; end; end;
procedure TFormServerUtama.FormCreate(Sender: TObject); begin ShapeConnect1.Brush.Color := clRed; ShapeConnect2.Brush.Color := clRed; ShapeConnect3.Brush.Color := clRed; Server1 := nil; Server2 := nil; Server3 := nil; end;
procedure TFormServerUtama.ServerSocketKirimClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = nil then begin ShapeConnect1.Brush.Color := clBlue; EditClientFrom1.Text := Socket.RemoteHost; Server1 := Socket; end else if Server2 = nil then begin ShapeConnect2.Brush.Color := clBlue; EditClientFrom2.Text := Socket.RemoteHost; Server2 := Socket; end else if Server3 = nil then begin ShapeConnect3.Brush.Color := clBlue; EditClientFrom3.Text := Socket.RemoteHost; Server3 := Socket; end else begin Socket.Disconnect(ServerSocketKirim.Socket.ActiveConnections - 1); end; PostMessage(Handle, WM_REFRESHCLIENT, 0,0) ; end;
procedure TFormServerUtama.ServerSocketKirimClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = Socket then begin ShapeConnect1.Brush.Color := clRed; EditClientFrom1.Clear; Server1 := nil; end
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 30 dari 40
Tampilan Server jika dihubungkan dengan client adalah :
Tampilan client
else if Server2 = Socket then begin ShapeConnect2.Brush.Color := clRed; EditClientFrom2.Clear; Server2 := nil; end else if Server3 = Socket then begin ShapeConnect3.Brush.Color := clRed; EditClientFrom3.Clear; Server3 := nil; end; PostMessage(Handle, WM_REFRESHCLIENT, 0,0); end;
procedure TFormServerUtama.ServerSocketKirimClientRead(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = Socket then begin EditData1.Text := Socket.ReceiveText; end else if Server2 = Socket then begin EditData2.Text := Socket.ReceiveText; end else if Server3 = Socket then begin EditData3.Text := Socket.ReceiveText; end; end; end.
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 31 dari 40
Respont dari Server adalah :
Respon server jika ada clinet terhubung, warna
shapeconnection langsung berubah
menjadi Biru
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 32 dari 40
Praktikum Tugas 4 Perancangan Program
Server-Client dengan Port 50
Program Client Program diatas sama dengan Program Client Server, namun respon dari server ke client apabila ada client yang terhubung, maka server dapat memberikan pesan balik ke client,
Form dari pada clinet adalah sebagai berikut :
Program yang perlu ditambah pada socket client yaitu onread (lihat propertynya):
Property Socket client adalah :
procedure TFormClient.ClientSocketKirimRead(Sender: TObject;
Socket: TCustomWinSocket); var pesan : String; begin pesan := Socket.ReceiveText; Editserver.Text := pesan; pesan := ''; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 33 dari 40
Program selengkapnya adalah : unit clientunitfotm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, JvExControls, JvComCtrls, ScktComp; type TFormClient = class(TForm) CheckBoxKoneksiKeServer: TCheckBox; ClientSocketKirim: TClientSocket; EditIPaddress: TJvIPAddress; Label1: TLabel; EditPesan: TLabeledEdit; BitBtn1: TBitBtn; ButtonSend: TButton; EditServer: TLabeledEdit; procedure CheckBoxKoneksiKeServerClick(Sender: TObject); procedure ButtonSendClick(Sender: TObject); procedure ClientSocketKirimRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end; var FormClient: TFormClient; implementation {$R *.dfm} procedure TFormClient.CheckBoxKoneksiKeServerClick(Sender: TObject); begin if CheckBoxKoneksiKeServer.Checked then begin ClientSocketKirim.Host := EditIPaddress.Text; ClientSocketKirim.Port := 50; ClientSocketKirim.Active := True; end else begin ClientSocketKirim.Active := False; end; end; procedure TFormClient.ButtonSendClick(Sender: TObject); begin if Trim(EditPesan.Text) <> '' then ClientSocketKirim.Socket.SendText(EditPesan.Text); end; procedure TFormClient.ClientSocketKirimRead(Sender: TObject; Socket: TCustomWinSocket); var pesan : String; begin pesan := Socket.ReceiveText; Editserver.Text := pesan; pesan := ''; end; end.
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 34 dari 40
Program Server Sama seperti penjelasan diatas, bahwa server dapat memberikan respon kepada client apabila clien pernah menghubugi server.
Bentuk form dari pada server adalah :
Program untuk mengirim balik ke client adalah :
Program Selengkapnya adalah :
Bersambung….
procedure TFormServerUtama.ButtonKirim1Click(Sender: TObject);
var socket : TCustomWinSocket; begin if Server1 = nil then Exit; socket := server1; socket.SendText(Trim(EditKirim1.Text)); end;
unit formutamaunit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ScktComp, Sockets; const WM_REFRESHCLIENT = WM_USER + 100; type TFormServerUtama = class(TForm) GroupBox1: TGroupBox; ShapeConnect1: TShape; EditClientFrom1: TLabeledEdit; EditData1: TLabeledEdit; GroupBox2: TGroupBox; ShapeConnect2: TShape; EditClientFrom2: TLabeledEdit;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 35 dari 40
Bersambung……..
EditData2: TLabeledEdit; GroupBox3: TGroupBox; ShapeConnect3: TShape; EditClientFrom3: TLabeledEdit; EditData3: TLabeledEdit; BitBtn1: TBitBtn; CheckBoxAktifkanServer: TCheckBox; ServerSocketKirim: TServerSocket; EditKirim1: TLabeledEdit; ButtonKirim1: TButton; ButtonKirim2: TButton; EditKirim2: TLabeledEdit; ButtonKirim3: TButton; EditKirim3: TLabeledEdit; Label1: TLabel; procedure CheckBoxAktifkanServerClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ServerSocketKirimClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketKirimClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketKirimClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ButtonKirim1Click(Sender: TObject); procedure ButtonKirim2Click(Sender: TObject); procedure ButtonKirim3Click(Sender: TObject); private { Private declarations } Server1, Server2, Server3 : Pointer; procedure WMREFRESHCLIENT(VAR Msg : TMessage ); message WM_REFRESHCLIENT; public { Public declarations } end; var FormServerUtama: TFormServerUtama; implementation uses StdConvs; {$R *.dfm} procedure TFormServerUtama.CheckBoxAktifkanServerClick(Sender: TObject); begin if CheckBoxAktifkanServer.Checked then begin ServerSocketKirim.Active := True; end else begin ServerSocketKirim.Active := False; end; end; procedure TFormServerUtama.WMREFRESHCLIENT(var Msg: TMessage);
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 36 dari 40
begin
BandingServer := ServerSocketKirim.Socket.Connections[i]; if Server1 = BandingServer then begin ShapeConnect1.Brush.Color:= clBlue; EditClientFrom1.Text:= BandingServer.RemoteHost; GroupBox1.Enabled := true; editkirim1.Enabled:=true; buttonkirim1.Enabled:=true; end; if Server2 = BandingServer then begin ShapeConnect2.Brush.Color:= clBlue; EditClientFrom2.Text:= BandingServer.RemoteHost; GroupBox2.Enabled := true; editkirim1.Enabled:=true; buttonkirim1.Enabled:=true; end; if Server3 = BandingServer then begin ShapeConnect3.Brush.Color:= clBlue; EditClientFrom3.Text:= BandingServer.RemoteHost; groupBox3.Enabled := true; editkirim1.Enabled:=true; buttonkirim1.Enabled:=true; end; end; end; procedure TFormServerUtama.FormCreate(Sender: TObject); begin ShapeConnect1.Brush.Color := clRed; ShapeConnect2.Brush.Color := clRed; ShapeConnect3.Brush.Color := clRed; GroupBox1.Enabled := False; GroupBox2.Enabled := False; GroupBox3.Enabled := False; Server1 := nil; Server2 := nil; Server3 := nil; end; procedure TFormServerUtama.ServerSocketKirimClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = nil then begin ShapeConnect1.Brush.Color := clBlue; EditClientFrom1.Text := Socket.RemoteHost; Server1 := Socket; ButtonKirim1.Enabled := True; EditKirim1.Enabled := True; end else if Server2 = nil then begin ShapeConnect2.Brush.Color := clBlue; EditClientFrom2.Text := Socket.RemoteHost; Server2 := Socket; ButtonKirim2.Enabled := True; EditKirim2.Enabled := True;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 37 dari 40
Bersambung….
end
else if Server3 = nil then begin ShapeConnect3.Brush.Color := clBlue; EditClientFrom3.Text := Socket.RemoteHost; Server3 := Socket; EditKirim3.Enabled := True; ButtonKirim3.Enabled := True; end else begin Socket.Disconnect(ServerSocketKirim.Socket.ActiveConnections - 1); end; PostMessage(Handle, WM_REFRESHCLIENT, 0,0) ; end; procedure TFormServerUtama.ServerSocketKirimClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = Socket then begin ShapeConnect1.Brush.Color := clRed; EditClientFrom1.Clear; Server1 := nil; GroupBox1.Enabled := False; end else if Server2 = Socket then begin ShapeConnect2.Brush.Color := clRed; EditClientFrom2.Clear; Server2 := nil; GroupBox2.Enabled := False; end else if Server3 = Socket then begin ShapeConnect3.Brush.Color := clRed; EditClientFrom3.Clear; Server3 := nil; GroupBox3.Enabled := False; end; PostMessage(Handle, WM_REFRESHCLIENT, 0,0); end; procedure TFormServerUtama.ServerSocketKirimClientRead(Sender: TObject; Socket: TCustomWinSocket); begin if Server1 = Socket then begin EditData1.Text := Socket.ReceiveText; end else if Server2 = Socket then begin EditData2.Text := Socket.ReceiveText; end else if Server3 = Socket then begin EditData3.Text := Socket.ReceiveText; end;
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 38 dari 40
Tampilan pengiriman data dari client : Data diterima di Server
end;
procedure TFormServerUtama.ButtonKirim1Click(Sender: TObject); var socket : TCustomWinSocket; begin if Server1 = nil then Exit; socket := server1; socket.SendText(Trim(EditKirim1.Text)); end;
procedure TFormServerUtama.ButtonKirim2Click(Sender: TObject); var socket : TCustomWinSocket; begin if Server2 = nil then Exit; socket := server2; socket.SendText(Trim(EditKirim2.Text)); end; procedure TFormServerUtama.ButtonKirim3Click(Sender: TObject); var socket : TCustomWinSocket; begin if Server3 = nil then Exit; socket := server3; socket.SendText(Trim(EditKirim3.Text)); end; end.
Data dikirim ke Server
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 39 dari 40
Tampilan pengiriman data respon dari Server ke Client :
Respons Server dikirim kembali ke Client
Data diterima di Client
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Oleh Hasanuddin Sirait (P- 2700207044) Halaman : 40 dari 40
Buku Referensi :
Ir. Inge Martina, 2002, 36 Jam Belajar Komputer, Pemrograman Internet dengan Delphi, Elex Media Komputindo, Jakarta.
Jaja Jamaludin, 2005, Kumpulan Latihan Pemrograman Delphi, Andi Offset, Yokyakarta.
Djoko Susilo, 2005, Grafika Komputer dengan Delphi, Graha Ilmu, Yokyakarta.
This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.