Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Nickliste Chat (https://www.delphipraxis.net/102726-nickliste-chat.html)

Koksi 3. Nov 2007 12:54


Nickliste Chat
 
Guten Tag,

Ich code zurzeit an einem Chat mit Server und Client !

Ich benutze folgende Komponenten : Clientsocket und Serversocket !

Könnte mir jemand ein Code beispiel geben wie ich eine Nickliste programmieren könnte oder einer den Code posten???

mfg
Koksi

idontwantaname 3. Nov 2007 12:56

Re: Nickliste Chat
 
Ich werde dir zwar keinen Code geben, aber folgenden Denkansatz:
Dein Server weiß, wer sich zu ihm verbindet. Speichere alle Nicks und lasse einen Client diese Liste abrufen ;)

Koksi 3. Nov 2007 15:49

Re: Nickliste Chat
 
hat jemand ein code beispiel?

Torpedo 3. Nov 2007 16:05

Re: Nickliste Chat
 
Es gibt kein allgemeines Code-Beispiel. Der Code ändert sich je danach wie du den Chat realisiert hast.
Pseudocode:


(Server)
Wenn Client verbunden hat:
Sende Liste aller verbundenen Clients an alle Clients.

(Client)
Wenn Serverliste erhalten:
Füge Liste in eine Listbox ein.

RWarnecke 3. Nov 2007 16:07

Re: Nickliste Chat
 
Zitat:

Zitat von idontwantaname
Ich werde dir zwar keinen Code geben, aber folgenden Denkansatz:
Dein Server weiß, wer sich zu ihm verbindet. Speichere alle Nicks und lasse einen Client diese Liste abrufen ;)

Ich führe den Denkansatz mal weiter. Diese Liste mit den angemeldeten Clients werden an alle Clients gesendet und zum Beispiel in einer Listbox ausgegeben.

Real_Thunder 3. Nov 2007 16:56

Re: Nickliste Chat
 
Es gibt dazu sehr viele Beispiele im forum.
Und es gibt viele möglichkeiten dies zu machen.
als erstes solltest du dir ein komplettes Protokoll überlegen.

Hier mal ein Paar grundgedanken:
Client verbindet zum server,
server merkt sich den socket und dazu den nick. (ermöglicht später ein Privatgespräch)

das ganze habe ich so realisiert das ich ein array of record gemacht habe und im record

socket:TCustomwinsocket;
nick:string;
chatrauume: array of integer;

Wenn jetzt also jemand in einen chatraum kommt, dann sollte er eine anfrage an der server senden,
der server durchsucht dann in seinem array of record nach den chaträumen, wenn diese stimmen,
wird der nick gesammelt, wenn alle nicks gesammelt sind wird es übertragen.

Ich werde hier ebenfalls kein Copy Und Paste code posten.
wenn du irgendwo nicht weiterkommst, poste einfach das was du schon hast.. und dir wird sicher geholfen..
und wenn du irgendetwas nicht verstanden hast.. dann frage halt

MfG Real Thunder

Koksi 4. Nov 2007 14:04

Re: Nickliste Chat
 
Entschuldigen sie aber mit Sockets kenn ich mich noch nicht so gut aus :oops:

mit

Clientsocket1.socket.sendtext(edit1.text+' hat den Raum betreten...');

und der Server :

Socket.Receivetext...

ja alles schön und gut aber wie geht das mit dem Nickname wie kann ich die Namen in einer Listbox von dem Server listen und dann abfragen lassen vom Client ???

nachti1505 4. Nov 2007 14:58

Re: Nickliste Chat
 
Du wirst ein eigenes Protokoll dafür definieren müssen....

OnConnect, Client:
Delphi-Quellcode:
Clientsocket1.socket.sendtext('#NICKLIST');
Server erhält Nachricht "#NICKLIST"
Delphi-Quellcode:
for i:=0 to NickList.Count - 1 do
  ServerSocket1.Socket.SendText('#NICKNAME: ' + NickList.Items[i]);
Client erhält Nachricht "#NICKNAME: ksngfskj"
Delphi-Quellcode:
  if pos('#NICKNAME', Msg) > 0 then
    NickListBox1.Items.Add(copy(Msg, 12, length(Msg) - 12);
Ist natürlich mehr Pseudocode denn funktionsfähiges Delphi...

jbg 4. Nov 2007 15:12

Re: Nickliste Chat
 
Zitat:

Zitat von Koksi
Ich benutze folgende Komponenten : Clientsocket und Serversocket !

Die beiden Komponenten sind schon lange abgesagt und nur noch für Altlasten mit dabei. Sie sind nicht einmal mehr bei neueren Delphi Versionen in die IDE installiert und müssen von Hand nachinstalliert werden.

Progman 4. Nov 2007 16:32

Re: Nickliste Chat
 
TClientSocket und TServerSocket haben aber ein stabiles Verhalten und deren Einsatz ist durchaus noch zweckmäßig.
Und für das füllen einer Nickliste würde ich mich ans IRC-Protokoll anlehnen. Da gibt es den Befehl "/names #channel", den jeder Client aufruft und der Server sendet ihm die Nicks des Channels.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz