Arsip: PLS Need help with INDY 10 IdTCPServer/Client

 
user image
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 ?
user image
more 18 years ago

kaka-delphi

Udah coba kesini : http://www.swissdelphicenter.ch/en/indyarticles.php ?
user image
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?
user image
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;
user image
more 18 years ago

stoopid

okay thx, saya akan coba baca2 dulu di helpnya...
user image
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 :)
user image
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 .. ;)
user image
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 :)
user image
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 :)
user image
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 :

Type
  PKoneksi = ^TKoneksi;
  TKoneksi = Record
     Nama: String;
     IP: String;
     Komputer: String;
     Peer: TIdContext;
  End;
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 OnExecute
@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 ?
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...
more ...
  • Pages:
  • 1
  • 2
Share to

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

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com