Delphi Chat
Delphi Chat
Ako by sa dal vytvorit chat ale nie cez siet ale Internetom cize kamarat by si spustil clienta a by mi pisal a samozrejme ze by som mu mohol odpisovat ja server THX ale to sa asi nebude dat.. 
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
ale hej, je to sieť
A z toho programátorského hľadiska je to úplne jedno (tzn. chat ktorý pôjde cez net môže ísť aj cez lan, a naopak). Jedinou podmienkou je aby mal jeden z dvojice (alebo ak spravíš server osobitne tak server) verejnú ip. Kedysi dávno som taký chat robil, možno ho ešte nájdem. Ak nie, môžem ti spraviť jednoduchú ukážku ako na to
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
robil som to dávno, až sa za to hanbím teraz 
kľúčové procedúry:
a posielanie správ na server robíš cez server to následné rozpošle na každého klienta: hotové exe ako ukážku máš v prílohe. Komplet zdroják ti nedám (ani ti netreba viac ako je tu, no ja som si robil vlastný protokol každý klient je aj serverom, a dynamicky sa mi prepájalo aby som nepotreboval mať jeden centrálny server a plno iných vecí, preto nechcem aby si to vydával pod svojim menom). Využíva sa iba Ak chceš skúšať online, beží na porte 5050. Na lan ti to fungovať bude tiež. Ani si ale už nepamätám či to malo nejaké bugy alebo nie..
kľúčové procedúry:
Kód: Vybrať všetko
procedure TForm1.pripoji1Click(Sender: TObject);
begin
if form2.showmodal=mrOk then begin
online_list:=TStringlist.Create;
ClientSocket1.Address:=form2.ip;
ClientSocket1.Port:=5050;
nick:=form2.Edit2.Text;
if nick='' then nick:='anonym';
ClientSocket1.Open;
edit3.SetFocus;
end;
end;
procedure TForm1.odpoji1Click(Sender: TObject);
begin
ListBox2.Clear;
GroupBox1.caption:='Online (0)';
ClientSocket1.Socket.SendText(_odhl+nick);
ClientSocket1.Close;
online_list.Destroy;
end;Kód: Vybrať všetko
ClientSocket1.Socket.SendText(sprava);Kód: Vybrať všetko
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var i:integer;
sprava:string;
begin
sprava:=Socket.ReceiveText;
online_list.Sort;
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do begin
ServerSocket1.Socket.Connections[i].SendText(sprava);
end;
end;Kód: Vybrať všetko
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;- Prílohy
-
- client.rar
- (342.53 KiB) 40 stiahnutí