Klient -> Server -> klient

Tags:    delphi

Jeg kan sagtens få en forbindelse mellem en klient og en server op at køre...
Med det mener jeg f.eks. også at jeg kan sende en besked e.l. mellem de to steder...

Mennn....
- Hvordan får jeg serveren til at sende beskeden videre til en anden klient?
- Hvordan kan man få vist en liste over alle de klienter der er koblet på serveren?



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jep... en tcp-server...

Jeg væksler lidt mellem idTCPServer fra indy-panelet og almindelig TCPServer fra internet-panelet.


DU skal have liste over alle klienter der er koblet op mod serveren. Der er (garanteret) en event som fyrer hver gang en klient kobler på, og ditto når klienten kobler af. Hver gang denne event fyrer, gemmer du de nødvendige referencer i en liste (f.eks. en TList).

Hver gang du så modtager noget fra en klient, sender du det ud til alle klienterne via denne liste over referencer.

Der er rimeligt nemt, så jeg vil ikke til at igang med kode eksempler, man lærer alligevel mest ved at gøre det selv :)

Hvis dette ikke er nok, så må du skrive igen.
---
Thomas Due
tdue@mail.dk



Jeg kan sagtens få en forbindelse mellem en klient og en server op at køre...
Med det mener jeg f.eks. også at jeg kan sende en besked e.l. mellem de to steder...

Mennn....
- Hvordan får jeg serveren til at sende beskeden videre til en anden klient?
- Hvordan kan man få vist en liste over alle de klienter der er koblet på serveren?


Hvilken "server" en TCP socket eller hvad ?

-
neuroman? det' da mig :D
Aloha - Er du fresh???



Jep... en tcp-server...

Jeg væksler lidt mellem idTCPServer fra indy-panelet og almindelig TCPServer fra internet-panelet.



DU skal have liste over alle klienter der er koblet op mod serveren. Der er (garanteret) en event som fyrer hver gang en klient kobler på, og ditto når klienten kobler af. Hver gang denne event fyrer, gemmer du de nødvendige referencer i en liste (f.eks. en TList).

Hver gang du så modtager noget fra en klient, sender du det ud til alle klienterne via denne liste over referencer.

Der er rimeligt nemt, så jeg vil ikke til at igang med kode eksempler, man lærer alligevel mest ved at gøre det selv :)

Hvis dette ikke er nok, så må du skrive igen.
---
Thomas Due
tdue@mail.dk



"OnExecute" eventen er den event der kører når en klient kobler op, eller i det hele taget sender noget til serveren. Det vil sige at man godt kan gemme en evt. besked sendt til serveren, det kunne være en besked der fortalte navnet på klienten.
Men: Problemet er så at denne besked jo ikke indeholder informationer om den enkelte opkobling (de specielle oplysninger). De specielle oplysninger kommer med beskeden via en såkaldt "Tthread" indlagt i "OnExecute". Jeg ved ikke hvordan man kan gemme en sådan variabel, ligesom man ville gemme en liste af strenge...?

Det ville jo være rart hvis man havde en liste der havde oplysninger på følgende måde:
Gunner[klientnavn] - Oplysninger[Tthread knyttet til navnet]
Peter[klientnavn] - Oplysninger[Tthread knyttet til navnet]
Søren[klientnavn] - Oplysninger[Tthread knyttet til navnet]
Brian[klientnavn] - Oplysninger[Tthread knyttet til navnet]
Jacob[klientnavn] - Oplysninger[Tthread knyttet til navnet]

-------------------------- Hjælp.... snøft snøft.......... :o)

Brian




Det smarteste ville være bare at få en metode hvorpå man kunne gemme Tthread i en ny "dims" hver gang en ny klient logger på...

Man kan jo godt lave 100 variabler hvor man gemmer oplysninger i, men derved kan der heller ikke logges flere på serveren... Så kan man selvfølgelig lave flere variabler, men det kommer til at kører meget tungt...

Du skulle ikke lige vide hvordan man kan få fat i IP'en fra en der kobler op til serveren, for så kunne man jo gemme denne og derefter bruge en klient til at sende videre... Eller bare hente ip'en og så skrive til klienten via serveren...



t