Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Praktikum Tugas 1 Perancangan Program Client dengan Port 32 Form dari pada client adalah sebagai berikut :
Bentuk shortcat dari pada socket Default status adalah “Not Connection to Server” Jika server belum aktif maka tampil :
Progamnya adalah : if checkbox1.Checked=false then begin label6.Caption:='Port '+inttostr(clientsocket1.port)+' Off'; edit3.Text:='Not Connect to Server'; end;
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
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 1 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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 : clientsocket1.active:=True;
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))
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 2 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Program client secara lengkap adalah sebagai berikut : 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; Bersambung…….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 3 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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} Bersambung. …….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 4 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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';
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 5 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : Pesan yang terkirim
Socket Server
Port yang menghubungi
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 : 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
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 6 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
edit3.Text:= 'DEFAULT' else if pesan= '255' then edit3.Text:= 'UPPERLIMIT' else edit3.Text:= 'UNKNOWN'; serversocket1.Socket.Connections[0].SendText('KIRIM'); end;
Sebagai Responding, jika client tidak ada yang menghubungi maka harus di definisikan seperti sebagai berikut : Adapun Program Selengkapnya adalah sebagai berikut : unit Userver1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, ExtCtrls; type TForm1 = class(TForm) procedure TForm1.ServerSocket1ClientDisconnect(Sender: Panel1: TPanel; TObject; ServerSocket1: TServerSocket; Socket: TCustomWinSocket); Edit1: TEdit; begin Edit2: TEdit; edit2.Text:='OFF'; Edit3: TEdit; end; 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;
Bersambung…….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 7 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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; Text yang dikirim edit1.Text:=pesan; ke client jika telah if pesan = '0' then terkoneksi, dan edit3.Text:= 'UNDERLIMIT' pengiriman else if pesan= '128' then berhasil 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.
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 8 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Tampilan Jika dihubungkan dengan mengaktifkan form client dan server, dengan mengirim text melalui Text Edit.
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 9 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : procedure TForm1.CheckBox1Click(Sender: TObject); begin if not ClientSocket1.Active then ClientSocket1.Address := Edit1.Text; ClientSocket1.Active := CheckBox1.Checked; end;
Text yang dikirim adalah berada pada Edit text pada panel pesan, dimana programnya adalah sebagai berikut : procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Edit2.Text); end;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 10 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Program secara lengkap adalah sebagai berikut : 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; Bersambung….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 11 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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.
Tampilan dari Program tersebut adalah sebagai berikut :
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 12 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 :
Speedbutton
Listing program yang ada didalam speedbutton adalah : 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;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 13 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 14 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 15 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : 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;
Hubungkan Untuk melakukan connection dengan beberapa client yang akan melakukan,sehingga client dapat berfungsi sebagai chatting. Programnya adalah sebagai berikut : 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;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 16 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Putuskan Hubungan Untuk melakukan memutuskan connection dengan beberapa client yang akan melakukan,sehingga client tidak dapat berfungsi sebagai chatting. Programnya adalah sebagai berikut : procedure TChatForm.Disconnect1Click(Sender: TObject); begin ClientSocket.Active := False; ServerSocket.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; end;
Keluar Untuk keluar dari pada main menu, sehingga form aktifitas host tidak berfungsi lagi Programnya adalah sebagai berikut : procedure TChatForm.Exit1Click(Sender: TObject); begin Application.Restore; ServerSocket.Close; ClientSocket.Close; Close; end;
Adapun menu dari pada main menu ini adalah sebagai berikut :
Dan property dari main menu adalah :
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 17 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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 Server
Speedbutton
Main Menu Socket Server
Memo Client
Socket Client
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 18 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Listing Program lengkap adalah : 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);
Bersambung….. Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 19 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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.C ount - 1]) else ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]); end;
Bersambung…..
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 20 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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;
Bersambung……….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 21 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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);
Tampilan dari pada Server Chatting adalah sebagai berikut :
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 22 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : 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;
Property dari Socket client adalah :
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 23 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Program Pengiriman adalah sebagai berikut : procedure TFormClient.ButtonSendClick(Sender: TObject); begin if Trim(EditPesan.Text) <> '' then ClientSocketKirim.Socket.SendText(EditPesan.Text); end;
Form untuk clien adalah sebagai berikut :
Program lengkap untuk clien adalah sebagai berikut : 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;
Bersambung…..
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 24 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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.
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 25 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : 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;
Untuk mengaktifkan server dengan menggunakan checkbox adalah : Procedure TFormServerUtama.CheckBoxAktifkanServerClick(Sender: TObject); begin if CheckBoxAktifkanServer.Checked then begin ServerSocketKirim.Active := True; end else begin ServerSocketKirim.Active := False; end; end;
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 26 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Bentuk form untuk server adalah :
Program selengkapnya adalah : 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;
Bersambung…… Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 27 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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;
Bersambung….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 28 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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
Bersambung…..
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 29 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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: 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.
TObject;
Tampilan Server jika dihubungkan dengan client adalah : Tampilan client
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 30 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Respont dari Server adalah : Respon server jika ada clinet terhubung, warna shapeconnection langsung berubah menjadi Biru
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 31 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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): procedure TFormClient.ClientSocketKirimRead(Sender: TObject; Socket: TCustomWinSocket); var pesan : String; begin pesan := Socket.ReceiveText; Editserver.Text := pesan; pesan := ''; end;
Property Socket client adalah :
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 32 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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.
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 33 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
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 : procedure TFormServerUtama.ButtonKirim1Click(Sender: TObject); var socket : TCustomWinSocket; begin if Server1 = nil then Exit; socket := server1; socket.SendText(Trim(EditKirim1.Text)); end;
Program Selengkapnya adalah : 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;
Bersambung….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 34 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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);
Bersambung……..
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 35 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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: 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;
Oleh Hasanuddin Sirait (P- 2700207044)
TObject;
Halaman : 36 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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;
Bersambung….
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 37 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan 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.
Tampilan pengiriman data dari client : Data diterima di Server
Data dikirim ke Server
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 38 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan Tampilan pengiriman data respon dari Server ke Client : Respons Server dikirim kembali ke Client Data diterima di Client
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 39 dari 40
Laporan Praktikum Matakuliah Pemrograman Berbasis Jaringan, Menggunakan
Buku Referensi : Ir. Inge Martina,
2002, 36 Jam Belajar Komputer, Pemrograman Internet dengan Delphi, Elex Media Komputindo, Jakarta.
Jaja Jamaludin,
2005, Kumpulan Yokyakarta.
Djoko Susilo,
Latihan
Pemrograman
Delphi,
Andi
Offset,
2005, Grafika Komputer dengan Delphi, Graha Ilmu, Yokyakarta.
Oleh Hasanuddin Sirait (P- 2700207044)
Halaman : 40 dari 40
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.