Arsip: PLS Need help with INDY 10 IdTCPServer/Client

more 18 years ago
stoopid
saya uda coba search google tentang contoh cara penggunaan komponen idtcpserver/idtcpclient cuma rata2 contohnya masih menggunakan indy 9 sehingga ada bbrp komponen yg berbeda dan saya ga tau berubah ke apa komponen tersebut di indy 10 >.<.
maaf ada yg bisa tolong bisa memberikan contoh aplikasi bertukar pesan dengan komponen indy 10 yg sederhana ?

more 18 years ago
kaka-delphi
Udah coba kesini : http://www.swissdelphicenter.ch/en/indyarticles.php ?

more 18 years ago
stoopid
thx buat replynya.
di tutorial tersebut jg tampaknya menggunakan indy dengan versi <10. ini source code yg saya kutip dr web tersebut
unit ServerMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
IdBaseComponent, IdComponent, IdTCPServer;
type
TformMain = class(TForm)
IdTCPServer1: TIdTCPServer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure IdTCPServer1Connect(AThread: TIdPeerThread);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
private
ZipCodeList: TStrings;
public
end;
pada source tersebut terdapat procedure
IdTCPServer1Connect(AThread: TIdPeerThread);
pada saat di compile dgn menggunakan indy 10 akan menghasilkan error sbg berikut
[Error] Unit1.pas(21): Undeclared identifier: 'TIdPeerThread'
bagaimana ya solusinya?
more 18 years ago
kifmesoft
baca saja helpnya Indy 10, di contents nya Migrating to Indy.Sockets Version 10[/b:b0d38f27d4]
untuk catatan perubahan class, bacalah di sub [b:b0d38f27d4]Changes to the Object Hierarchy
sedikit contoh (gambaran) perubahan :
unit ServerMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
IdBaseComponent, IdComponent, IdTCPServer,
IdContext; // <-- tambahan unit IdContext
type
TformMain = class(TForm)
IdTCPServer1: TIdTCPServer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
// yang lama
// procedure IdTCPServer1Connect(AThread: TIdPeerThread);
// procedure IdTCPServer1Execute(AThread: TIdPeerThread);
// yang baru
procedure IdTCPServer1Connect(AContext: TIdContext);
procedure IdTCPServer1Execute(AContext: TIdContext);
private
ZipCodeList: TStrings;
public
end;

more 18 years ago
stoopid
berikut adalah contoh tampilan dari program client:
pada saat program client dijalankan maka yg muncul adalah form login(yg sebelah kiri).
setelah terhubung ke server kemudian mengklik 2x nama dari user yg diinginkan maka form chat (yg kanan) baru akan muncul.
masalah yg terjadi adalah:
client sudah terhubung ke server pada saat tombol connect di form login. kemudian setelah user memilih nama dan membuka window chat (form kanan) maka koneksi tcp akan terputus dan harus menyatakan kembali perintah
idtcpclient1.connect;
pertanyaan:
gmn ya supaya waktu pindah form (dr form login ke form chat) koneksi dapat tetap terhubung/tidak terputus, sehingga tidak perlu memerintahkan idtcpclient untuk connect lagi.
tlg dibantu yah, thx :)


more 18 years ago
kifmesoft
Bisa dapat List User dari mana ? diisi secara statis ? atau dari browse network komputer ? ataukah dari program server ?
(xixixi.. malah diberondong balik pertanyaannya..., maklum.. jawaban mungkin akan muncul dari jawaban juga...hehe)
@stoopid: masalah yg terjadi adalah: client sudah terhubung ke server pada saat tombol connect di form login. kemudian setelah user memilih nama dan membuka window chat (form kanan) maka koneksi tcp akan terputus dan harus menyatakan kembali perintah idtcpclient1.connect; pertanyaan: gmn ya supaya waktu pindah form (dr form login ke form chat) koneksi dapat tetap terhubung/tidak terputus, sehingga tidak perlu memerintahkan idtcpclient untuk connect lagi.saya malah jadi ingin balik nanya, kenapa mesti diputus ? untuk keperluan apa ? program servernya cuma 1 aja kan..., dan semua client terhubung dg program server, nah..., itu tugas server untuk forward koneksi suatu client ke client lainnya.. yang harus diingat adalah bahwa IdTCPServer dan IdTCPClient hanyalah perangkat koneksi saja.. bukan perangkat siap pakai yang bisa langsung digunakan. Lihat pada berbagai contoh/demos dan amati bagian pengelolaan client .. ;)

more 18 years ago
stoopid
@kifmesoft: Bisa dapat List User dari mana ? diisi secara statis ? atau dari browse network komputer ? ataukah dari program server ? (xixixi.. malah diberondong balik pertanyaannya..., maklum.. jawaban mungkin akan muncul dari jawaban juga...hehe)[/quote:28feb0e3fc] saya belum menyelesaikan coding buat bagian ini, tapi kira2 user akan mengirimkan usernamenya ke server sehingga di server dapat terlihat user mana saja yg online dan list user ini akan dikirim ke user lagi. informasi IP user dan username akan digunakan untuk memantau status online/tidaknya sebuah user selama sesi tersebut. [quote:28feb0e3fc="kifmesoft"]saya malah jadi ingin balik nanya, kenapa mesti diputus ? untuk keperluan apa ? program servernya cuma 1 aja kan..., dan semua client terhubung dg program server, nah..., itu tugas server untuk forward koneksi suatu client ke client lainnya..source code & form untuk form login dan chat terdapat pada file yg berbeda. maaf mungkin saya kurang jelas. yg saya maksud hubungan client ke server tersebut justru terputus dengan sendirinya (bukan yg saya inginkan) pada waktu form chat muncul. yg saya inginkan pada waktu berpindah form (dari login ke chat) koneksi tetap terhubung(tidak terputus). nah bagaimanakah caranya agar koneksi ini dapat tetap terhubung pada waktu form chat muncul? thx, pls help :)

more 18 years ago
stoopid
mungkin gampangnya gambarannya adalah sbb:
form login uses form chat
idtcpclient connect terdapat di form login. sehingga pada waktu berpindah form koneksi akan terputus, mungkin karena pada saat memvisible/load form chat maka form login dianggap close ?
mmm, tapi tampaknya hal ini bisa diakali dengan memisahkan komponen idtcpclient pada form yg berbeda. sehingga menjadi sbb:
-form login uses form chat, form tcp
-form chat uses form tcp
*idtcpclient host,port dan connect terdapat pada form tcp.
saya coba dengan cara ini maka koneksi client ke server tidak akan terputus waktu berpindah dari form login ke form chat.
mungkin ada cara lain yg lebih efisien ?
thx for reply :)

more 18 years ago
kifmesoft
@stoopid: saya belum menyelesaikan coding buat bagian ini, tapi kira2 user akan mengirimkan usernamenya ke server sehingga di server dapat terlihat user mana saja yg online dan list user ini akan dikirim ke user lagi. informasi IP user dan username akan digunakan untuk memantau status online/tidaknya sebuah user selama sesi tersebut.[/quote:a1e30d55ff] benar perkiraannya... dan bagian ini mestinya yg diselesaikan dulu sebelum beranjak ke bagian lainnya.. ;) di program server harus ada list berbentuk record untuk mencatat info client ini, diprogram server bisa dibuat recordnya kira2 begini :Visible tidak akan mempengaruhi properti komponen lainnya... tetapi kalo Create & Destroy ya itu baru pengaruh pake dua IdTCPClient boleh2 saja tapi malah tambah ruwet..., saran saya ya pake 1 saja... kan yang ngontrol ke user mana kita terhubung itu kan program servernya bukan client...pengiriman dari info client bisa dilakukan pada event OnConnected, dan disisi server saat OnConnect harus dilakukan inisialisasi seperti mengalokasikan record tersebut, pengesetan nilai awal variabel, memasukkan record ke daftar client, dan mencatat pointer record tersebut ke AContext.Data nantinya.., informasi tentang client yg sedang online bisa dikirimkan oleh server pada event OnExecuteType PKoneksi = ^TKoneksi; TKoneksi = Record Nama: String; IP: String; Komputer: String; Peer: TIdContext; End;
@stoopid: source code & form untuk form login dan chat terdapat pada file yg berbeda. maaf mungkin saya kurang jelas. yg saya maksud hubungan client ke server tersebut justru terputus dengan sendirinya (bukan yg saya inginkan) pada waktu form chat muncul. yg saya inginkan pada waktu berpindah form (dari login ke chat) koneksi tetap terhubung(tidak terputus). nah bagaimanakah caranya agar koneksi ini dapat tetap terhubung pada waktu form chat muncul?sebenarnya nggak masalah meskipun file (unit) nya dibikin terpisah.. asal masih dalam satu project saja masih tetap bisa diakses dg mudah... masalahnya ya yg bikin putus hubungan itu yang harus dicari... ;) (mengapa kok sampe memutuskan hubungan tanpa sebab.. hehe.. bisa broken heart) [quote:a1e30d55ff="stoopid"]idtcpclient connect terdapat di form login. sehingga pada waktu berpindah form koneksi akan terputus, mungkin karena pada saat memvisible/load form chat maka form login dianggap close ?
more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- membuat change password untuk beberapa user
by gormet in Tip n Trik Pemrograman more 18 years ago - ubah 'not null' di mysqlfront gak bisa
by viq_01 in MySQL more 17 years ago - Tolong donk.....Masalah image neh..
by willbrig in Tip n Trik Pemrograman more 17 years ago - tanya skin bro
by putra in Enginering more 19 years ago - Lebaran
by donald in OOT more 16 years ago - cara menampilkan data dengan timer
by alvonz in OOT more 16 years ago - penambahan data pada grid
by ru_kd in Tip n Trik Pemrograman more 17 years ago - Tentang Sistem Pakar
by tAtA in Hal umum tentang Pascal Indonesia more 18 years ago - Menampilkan image captcha di Twebbrowser
by kusqus in Web Programming more 15 years ago - Dotnetnuke pake Delphi
by wongUedanTenan in Delphi.NET more 16 years ago