Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

jaki komponent do komunikatora w delphi

agappe 02 Maj 2009 21:09 2810 11
  • #1 02 Maj 2009 21:09
    agappe
    Poziom 16  

    Witam, chciałem na swoje potrzeby napisać komunikator w Delphi 7 z użyciem jakichś komponentów, tak żeby móc się komunikowac z użytkownikami z poza natu. Wczesniej robiłem to na protokole gg z wykorzystaniem HGG ale od DAWNA już ten komponent nie dziala poprawnie.
    Moze ktos coś polecić, jakis komponent przez ktory mozna sie komunikowac na podstawie jakiegos protokolu? Napisal bym cos swojego ale do tego potrzebny jest serwer a do rozwiazan "domowych" jest to zbyt duzy wydatek ;)

  • #2 03 Maj 2009 10:15
    BABCIA ADHD
    Poziom 9  

    Witam,

    Proponuje użyć wbudowany w Delphi pakiet INDY. Są to komponenty do zapisu / odczytu stron (http), komunikacji z serwerem (FTP) czy np. do stworzenia własnego GG.
    Do tego służą komponenty IdTCPClient oraz IdTCPServer.

    Dobry artykuł wyjaśniający krok po kroku tą komunikację :
    http://4programmers.net/Delphi/INDY

    (O komunikacji TCP w dziale Komponenty INDY w praktyce --> TCP)

  • #3 03 Maj 2009 11:48
    agappe
    Poziom 16  

    Wiem wiem, ale http i ftp nie są wygodnymi sposobami komunikacji bo nie informuje bezposrednio o wiadomości ktora przyszła ;/ czyli nie jest możliwe przekazywanie informacji "na żywo" a komponenty dot. TCP wymagają żeby przynajmniej jeden komp. miał zew. IP albo oba były w tej samej sieci a ja chce ustanowić komunikacje pomiędzy komputerami z innej sieci. Myślałem nad ftp i http ale dużo wygodniejsze było by przesyłanie wiadomości "na żywo" ;/. Ma ktoś jeszcze jakieś pomysły?

  • #4 03 Maj 2009 12:01
    BoskiDialer
    Poziom 34  

    Jak słusznie zauważyłeś, jeden komputer musi mieć zewnętrzny adres IP (lub oba muszą być w sieci). Jeśli nie masz zewnętrznego adresu, to łączysz się z publicznym serwerem - tutaj może być gadu, tlen, czy cokolwiek innego - lub tworzysz swój serwer - jeśli masz dostęp do jakiegoś serwera (konto shell), możesz napisać na niego swój program, masz wtedy możliwość napisania swojego protokołu.

  • #5 03 Maj 2009 13:22
    agappe
    Poziom 16  

    Serwera nie mam i jak już pisałem do rozwiązań "domowych" nie opłaca się wydawać tyle pieniędzy na serwer, oczywiscie komunikatory gg, tlen itp. by byly perfekcyjne ale ani hgg ani tgglite od dawna juz nie działają prawidłowo bo nikt ich nie rozwija. Dlatego właśnie szukam jakiejś nowej drogi komunikacji miedzy dwoma komputerami, żeby móc przesyłać tekst.

    Myślałem nad IRC'em ale nie na wszystkich komputerach działa żeby napisać swojego bota irc (sprawdzałem), więc poco robić coś co niedziała wszędzie ;/

  • #6 03 Maj 2009 20:10
    BABCIA ADHD
    Poziom 9  

    No FTP i HTTP nie jest najwygodniejsze, ale znowu nie tak bardzo. W sumie to nie wiem czy takie rozwiązanie jest profesjonalne, niemniej skuteczne ;)

    Wystarczy właściwie sam FTP. Jeśli to jest do zastosowań domowych, to przychodzą mi na myśl dwa sposoby.

    1) FTP. Zakładamy DARMOWY serwer, wystarczy żeby miał kilka mb jest pełno takich yoyo czy ovh.
    -I klientem FTP z dwóch kompów łączymy się na ten serwer
    -Gdy w programie pierwszym wysyłamy wiadomość, tworzymy plik na dysku z tą wiadomością o nazwie np. "C1.txt" i wgrywamy go (za pomocą komponenty FTP) na serwer i usuwamy z dysku.
    -Komputer drugi cały czas sprawdza czy jest plik na serwerze o nazwie "C1.txt". Jeśli jest to go ściąga, odczytuje wysyła w programie a potem USUWA z serwera.

    To samo robi program pierwszy i analogicznie na innych komputerach. Nie wiem jak z szybkością. Rozwiązanie trochę brutalne, ale w teorii skuteczne.

    2) Za pomocą HTTP. Piszemy stronkę w PHP do komunikacji (coś w stylu forum czy shoutbox'a), z użyciem baz danych. Ale miał być program , nie przeglądarka ? Więc piszemy program w którym umieszczamy komponent-przeglądarka (w zakładce Internet chyba) i ładujemy tą stronę.
    Rozwiązanie banalne i również skuteczne, tylko nie wiem czy autor chce mieć to rozwiązanie bo potrzebuje, czy robi ten program dlatego, że chce sobie poprogramować i się sprawdzić ;) Jeśli tak to nie bardzo :)

    Pierwsze rozwiązanie powinno działać, choć nie wiem jak z tym zewnętrznym IP, niemniej nie powinno być trudne czy niewygodne do napisania :)

  • #7 03 Maj 2009 20:38
    kamm24
    Poziom 10  

    FTP odpada z prostej przyczyny .. w tym samym czasie mogą się do serwera podłączyć min 2 osoby na serwerach typu yoyo lub ok 15 na innych też darmowych. Dopiero serwery płatne mogą w tym samym czasie obsłużyć nieograniczoną ilość połączeń z ftp (no ale trzeba poszukać bo też nie wszystkie).
    Pozatym przy użyciu ftp jest problem, każdy będzie mógł podejrzeć dane do logowania na ftp i narobić szkód na serwerze.

  • #8 03 Maj 2009 21:08
    BABCIA ADHD
    Poziom 9  

    Czy ja wiem czy tak odpada ?

    Skoro to zastosowania dla domu, a mówisz, że do 15 komputerów na raz to chyba i tak dużo. Kto ma w domu 15 kompów ;) Przynajmniej tak zrozumiałem, że do 15 różnych loginów jednocześnie, więc wydaje mi sie to wystarczające nawet dla małej firmy...

    A co do podejrzenia wiadomości / hasła to też nie jestem przekonany. Aby podejrzeć wiadomość trzeba znać nazwę pliku. A ją nie musi znać nawet użytkownik, wystarczy, że zna ją programista i program ;) A jeśli chodzi o hasło to nie trzeba je przechowywać na dysku, można poprosić o podanie za każdym uruchomieniem. Albo zaszyfrować. Jak to robi np. Total Comander.

  • #9 03 Maj 2009 21:14
    kamm24
    Poziom 10  

    BABCIA ADHD to nie musi być 15 kompów wystarczy np 15 połączeń z 1 kompa tak jak przez total comander no i trzeba taki serwer znaleźć.
    Podejrzenie wiadomości to tylko jeśli będzie ona przechowywana w pliku na serwerze i nie kasowana. Co do hasła to fakt jeśli będziesz je sam podawał ręcznie przy każdym wejściu do programu to ok nie da się podejrzeć mi chodziło o hasło wpisanie w programie aby nie było trzeba go ciągle podawać.
    Szyfrowanie to już musisz mieć płatny serwer z obsługą ssl inaczej nie da się zaszyfrować danych wysyłanych do serwera - a taki serwer to już jest płatny i nie kosztuje 5 zł miesięcznie - a autor tematu nie chce płacić za serwer

  • #10 03 Maj 2009 23:13
    Sam Sung
    Poziom 30  

    Ale o co chodzi?
    Zrobiłeś swój komunikator, czy klienta GG ?
    Co rozumiesz przez "móc się komunikowac z użytkownikami spoza natu" ? Przecież ten problem jest już od dawna rozwiązany na wiele sposobów: jest jabber z darmowymi serwerami, GG, tlen i inne. Spokojnie można przesyłać tekst. Są serwery z adminami i działające programy klienckie. Czego im brakuje? ;)
    Jeśli chodzi o zrobienie swojego klienta, który wykorzysta istniejący protokół i utrzymywany przez kogoś serwer, to polecałbym jabbera; http://forum.4programmers.net/viewtopic.php?id=135303 .
    A polowanie na pliki na ftp to jakiś totalny badziew, już lepiej przeysłać e-maile - będzie parę problemów mniej.

  • #11 04 Maj 2009 08:09
    agappe
    Poziom 16  

    Właśnie znalazłem w internecie tego jabbera, tylko chciałem najpierw sprawdzić czy zadziała a poźniej napisać. Niestety Delphi mi się zbuntowało wczoraj i nie chciało się uruchomić ^^. Znalazłem komponent do ICQ. Niestety okazało się, że nie działa a ICQ zaczęła blokować inne klienty niż oficjalny.

    Powiedzcie mi, który plik ściagnąć ze strony
    [ http://code.google.com/p/exodus/source/browse/#svn/trunk/jopl ]
    i jak go zainstalować (jeżeli nie ma napisane) w Delphi.
    Sory ale nigdy nie ściągałem z takich stron komponentów.

  • #12 04 Maj 2009 18:39
    BABCIA ADHD
    Poziom 9  

    Do kamm24 : mówią szyfrowanie miałem namyśli nie szyfrowany protokół, a przechowywanie hasła na dysku, ale zaszyfrowanego. Po za tym każdy program, który zapamiętuje hasło tak robi. A jak masz Gadu Gadu ? Tam też jest przechowywane hasło w pliku config, a jego szyfr jest dziecinnie banalny. A kto się boi o to, że podejrzą jego hasło, na własnym kompie ? A wiadomość musi być kasowana, bo tak wynika z założenia i trzeba znać nazwę pliku.

    Do Sam Sung'a : "polowanie na pliki ftp" nie uważam za badziew, tylko za praktyczne rozwiązanie. Jak mówiłem, nie wiem co z szybkością. Natomiast zgadzam się ze stwierdzeniem, że komunikacja dwóch kompów już dawno została rozwiązana. Ale mi się zdaje, że autor sam chciał napisać taki program ? Chyba, że się mylę. Skoro banalna i skuteczna komunikacja przez TCP odpada, gg tleny itp. też to co zostaje ? FTP ew. strony. Ale strony to nie program.

    Do agappe : nie jestem pewien, ale spróbuj ściągnąć wszystkie pliki u umieść je w folderze gdzie Delphi szuka bibliotek (albo w folderze Delphi w podfolderze Lib, albo w Moje dokumenty-->Borland Studnio projects). Potem, zależy czy korzystasz z Delphi 7 czy 2005 (albo z czegoś innego) W 7 było chyba (w menu) "Component" --> Instal new. A w 2005 podobnie. Nie używałem jabbera, więc znajdź jakąś instrukcje do niego i w "Install" wybierz plik *.pas, w którym jest komponent i główne klasy. Pewnie to będzie "JabberUntils.pas" albo coś innego ;) Nie wiem ;)

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME