grigorij89 napisał(a):Mam kilka pytań dotyczących komunikatora (tego od Cyfrowego Barona) , chodzi mi o oto za co odpowiadają poniższe linijki:
MemoKomunikaty->SetFocus(); // ustawia focus na MemoKomunikaty
Application->ProcessMessages(); // odświeża kolejkę komunikatów
EditKomunikat->SetFocus(); // ustawia focus na EditKomunikat
Ustawianie focus-a to po prosty uaktywnianie komponentu, w oknie zawsze jakiś obiekt jest aktywny. Odświeżenie kolejki komunikatów, pozwala programowi pobrać i przetworzyć komunikaty oczekujące w kolejce.
grigorij89 napisał(a):Mam także pytanie jak przerobić ten programik aby wysyłać wiadomość do konkretnego hosta
Tak jak to jest podane w poradniku, z tą różnicą, że tam wysyłana jest wiadomość najpierw do serwera a potem do klienta. Jeżeli chcesz utworzyć komunikacje nie na linii klient serwer - > klient, lecz klient klient, to po pierwsze obydwa klienty muszą też pracować w trybie serwera, po drugie by mogły się połączyć muszą znać na wzajem swoje zewnętrzne adresy IP. Rozwiązanie klient serwer - > klient sprawia, że każdy klient przekazuje serwerowi swój zewnętrzny adres IP, potem odbiera od ciebie nazwę użytkownika, z którym chcesz się połączyć, sprawdza jaki IP ma użytkownik, z którym chcesz się połączyć, potem przesyła wiadomość do tego użytkownika. Jeżeli nie znasz IP użytkownika, to się z nim nie połączysz, chyba że użytkownik przyśle ci e-mailem swoje IP, potem ty wprowadzisz w swoim kliencie to IP, prześlesz na to IP swoje IP i wtedy gdy obydwaj znacie swoje adresy możecie się komunikować . Możesz też zrobić tak, że ty - klient1 wysyłasz na serwer swój IP, oraz nazwę użytkownika - klient2 z którym chcesz się połączyć. Serwer musi przechowywać nazwy użytkowników. Jeżeli klient2 jeszcze się nie zalogował na serwer to serwer odsyła do klient1 wiadomość, że nie można się połączyć z klient2. Jeżeli klient2 zalogował się na serwer to również wysłał na ten serwer swój IP. Serwer w takiej sytuacji odsyła do klient1 adres IP klient2, a do klient2 wysyła adres IP klient1 i teraz klien-ci mogą się komunikować ze sobą bez udziału serwera, gdyż już znają swoje IP.grigorij89 napisał(a):Jak zaimplementować coś takiego , że klient wysyła prośbę o plik a serwer w odpowiedzi nu go wysyła.
Klient np.
kilent1 wysyła plik na serwer.
Serwer informuje
klient2, że na serwerze jest dla niego plik i wysyła mu adres FTP tego pliku.
Klient2 poprzez protokół FTP pobiera ten plik.
grigorij89 napisał(a):Z góry dziękuję za pomoc i zapraszam do dyskusji na ten temat na gg.
Problemy z GG zostały już dość szeroko omówione na tym forum. Jeżeli planujesz stworzyć komunikator do komunikacji z GG, to natkniesz się na wiele problemów, gdyż GG zabezpieczyło się przed komunikacją z ich serwerami przez nieautoryzowane
(inne niż GG) komunikatory.