Skocz do zawartości

[Delphi]Komunikator internetowy


Kemsan

Polecane posty

Witam:)

Ostatnio tworzę sobie komunikator internetowy TCP/IP i mam kilka pytań:

 

 

1. Jak zrobić by dwóch userów mogło rozmawiać między sobą? Tzn mam model do podłączania itd Ale jeśli jeden lub dwóch userów ma IP Wew.? To co wtedy? Bo ja np mając Zew. nie mogę się podłączyć do Wew. ale na odwrót już da się.

 

2. Jak zrobić rejestracje userów? Bo do bazy MySQL nie będę pakował(Znam bardzo dobrze tą bazę danych), zrobić to na plikach lub ... ?

 

3. Jak umożliwić rozmowę z kilkoma osobami naraz? Bo jeśli daję:

for n := 0 to ServerSocket1.Socket.ActiveConnections-1 do begin
 ServerSocket1.Socket.Connections[n].SendText(Socket.ReceiveText);:0irę-yf)RxŹQhZ(Ę'ś%i^-m\"^ŚxJ'iju\"w(^*^łRśZ\"{^ęJ'iju\"w(^*^łRśZ\"{^ęJ'ijv\"w(^*^łHzjww+kx7J'ijyJzgiy^uÓŃ8!Q7.ŃZD+>#yvv
vz-rWąn+wIZZłę-{bwŁm3\"ZpźŚX 7Śui'InI := TIniFile.Create(ExtractFilePath(ParamStr(0))+'setup.ini');

To nic się nie dzieje, nie tworzy pliku ini o nazwie setup.

Link do komentarza
Udostępnij na innych stronach

Dobra już się podłączyłem ale, jak wczytać kontakty do Memo?

Dałem tak

procedure TForm1.Memo1Click(Sender: TObject);
begin
    if HGG1.Users.Count >= 0 then //sprawdza czy mamy jakieś kontakty
for i:=0 to HGG1.Users.Count-1 do //pętla po wszystkich kontaktach
  Memo1.Lines.Add(HGG1.Users.User[i].Name + ' ' //nazwa
    + IntToStr(HGG1.Users[i].GGNumber)); //numer GG

end;

ale nic nie wczytuje

(Oczywiście klikam na memo1

Link do komentarza
Udostępnij na innych stronach

Na czym polegają sesje? Sesje nadaje się podczas logowania użytkownika do serwisu, nadajemy wtedy zmiennej wartość np w php wygląda to tak

<? $_POST['login'] = $_SESSSION['login']; ?>o3ęhóyĘkkszxs<ĄjĆn'jŁzz)(Ż<Źś'hĄ3Ęjxwf*.Ę(x6#2Ih'!ń(%uh)6 <? $dane = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE login = '".$_SESSION['login']."'")); echo $dane['login']; ?>

co wyświeli login pobrany z bazy danych(MySQL) - coś jeszcze chcesz?

Link do komentarza
Udostępnij na innych stronach

Ja ze swojej strony dodam ze uzywanie gdziekolwiek w zapytaniach sqla niefiltrowanych danych może skutkować usunięciem bazy przez sqlinjection lub inne problemy z nią związane. Jak ktoś sobie stworzy konto o loginie ; DELETE * from uzytkownicy; ( czy jakoś tak, nie znam sie ), to mozesz juz pozegnac sie z baza ;P

My life for Aiur!

Link do komentarza
Udostępnij na innych stronach

Kemsan, zblizasz sie powoli do granicy po przekroczeniu ktorej temat sie magicznie zablokuje. Rozumiem ze mas 14-16 lat i przezywasz swoja przygode z programowaniem, ale twoje posty bardziej sie nadaja na bloga a nie na forum. Pewnie nie dostrzegasz w ferworze walki ze niektore pytania innych sa retoryczne i nie musisz tlumaczyc ogolnie znanych mechanizmow (np sessji).

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

By w Delphi napisać obsługę sesji :D to szczerze:

1. bez gniazdek się nie obędzie

2. poznać musisz protokół HTTP

3. żadne funkcje z PHP Ci się nie przydadzą...

4. prościej napisać ten komunikator TCP/IP (a z IP wew. to popatrz na GG (jest serwer i klienty) )

5. za szybko chcesz wszystko zrobić, bardzo się palisz by ten komunikator napisać, a nie wiesz, że sama komunikacja między aplikacjami to jest kropla w morzu :)

 

Ps. strzelam :P ok. 13-16 ;P lat ?:D

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

Ludzie, ale to nie ma zanaczenia ile on ma lat.

Ja jako 13 latek robiłem ambitniejsze rzeczy...

 

Kemsan, wybitnie nie masz podstaw.

A to co nam pokazałeś to nie jest opis działania sesji, tylko opis użycia biblioteki standardowej PHP.

Po co ci w ogóle sesje do komunikatora, skoro przez cały czas masz strumień TCP do serwera?

 

A problemy w stylu "jak wysłać wiadomość do wszystkich z konferencji", są generalnie śmieszne, bo to zwykła iteracja po uczestnikach sesji.

Generalnie zapraszam na http://algorytm.org/, albo kup sobie "Algorytmy + Struktury Danych = Programy" N.Wirtha.

Może coś zrozumiesz ; p

 

I błagam nie prównuj klepania stronek w PHP do normalnego programowania xD

Obrazek
Link do komentarza
Udostępnij na innych stronach

w pelni zgadzam sie z Cubixmeisterem (ciezki nick). Kemsan ma jakis pomysl i zero wiedzy/doswiadczenia. O ile to drugie trzeba zdobyc samemu co rozumiem to zadawanie pytan jakie on zadaje naraza go na szykany i wysmianie bo pyta o podstawy. Co wiecej podstawy doskonale opisane w sieci na 10000000 stron. Wiec zamiast zasmiecac forum o tym jak nawiazac polaczenie tcp czy cos innego zacznij od tutoriali. Wyskakujac z pomyslami typu sesja do klienta typu gg sie blaznisz bo wywazasz otwarte drzwi. Madrzejsi od nas zrobili to juz wielokrotnie, opisali to i wystarczy zastosowac sie do tego co jest aby osiagnac swoj cel. A jak juz bedziesz cos roba reprezentowal to mozesz powiedziec: "ok wszyscy to robia tak, ale da sie zrobic lepiej bo........". A ty mczasem polecam otwarcie katalogu Demos do Delphi i uwaga..... uruchomienie przykladu prostego chata... jak go zrozumiesz to zrob multichata itd....

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Dobra przemyślałem wszystko i postanowiłem komunikator odłożyć na bok :) Na razie odkryję tajniki TWebBrowsera :) Nie wiem czy w tym temacie mogę się spytać:P Mam zrobione dużo(Strona startowa,podgląd źródła, otwieranie w nowych "własnych" oknach), ale mam problem z zakładkami(karty) jak to zrobić? Miałem tak ale nie działo (Tworzyło zakładki ale nie działała wielostronowość)

Taki kod miałem:

var
TabSheet: TTabSheet;
WebBrowser2: TWebBrowser;
begin
TabSheet:= tabsheet;//TTabSheet.Create(self);
TabSheet.Caption := 'Pozycje2';
TabSheet.PageControl := PageControl1;
WebBrowser2:= TWebBrowser.Create(self);
TWinControl(WebBrowser2).Parent := TabSheet;
ppDisp := Webbrowser2.DefaultDispatch;
WebBrowser2.Show;
end;

 

Proszę o odpowiedź:)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...