begin process at 2010 02 10 08:02:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Réseau & Internet

 > 

Client - Server

 > 

un serveur multithread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

un serveur multithread

mardi 10 juillet 2007 à 13:02:25 | un serveur multithread

aroslide

Je suis en train de réaliser un serveur multithread sachant qu'un thread représente un client. quelqu'un aurait il une idée ou un algo pour pouvoir faire que les clients qui se connectent ne génent pas les autres clients déjà connectés au serveur. exemple tant que l'authentification n'est pas faite alors on suspend toutes les recherches mais on laisse les clients discuter sur le chat central ... etc....
j'ai un thread pour le serveur, un thead pour chacun des clients .... kelkun a une idée ? j'utilise Tsocket pour faire ça ...indy me pause trop de problèmes et est trop lent . 
dimanche 22 juillet 2007 à 00:24:55 | Re : un serveur multithread

aroslide

Bon alors je vais être un peu plus précis. j'utilise un thread tserver qui crée un thread tclient à chaques nouvelles connections par contre dans le server au moment de sa creation j'utilise un semaphore exemple : 

constructor tserver_thread.create(Port:Word;BindTo:string);
begin
freeonterminate:=true;
SemaphoreThreads := createSemaphore(nil,1,1,'');
semaphorelistwork :=createsemaphore(nil,1,1,'MYLISTWORK');

inherited create (false);
//apres c blablabla création du serveur on ouvre le port and co
end;

dans l'unité client au niveau de tclient.execute  je reprends le semaphore messagetosend. 

procedure TUser.Execute;
k,waitresult:integer;
begin 

// blablabla on reçoit une instruction de la part d'un client 
// on attend que le semaphore se libere pour executer une instruction ares l'autre
    k:=0;
           WaitResult := WaitForSingleObject(moteur.SemaphoreListWork, 0);

          while waitresult<>wait_object_0 do
           begin
           k:=k+1;

           end;
             hbwait_ms(k);   // là j'attends k milliseconds

end;

là c'est le crash il semble que le sémaphore semaphorelistwork n'attends pas d'avoir terminé une instruction pour en reprendre une autre .... personne à une idée ?
Au secours !!!!!!!!!

mardi 18 mars 2008 à 23:01:33 | Re : un serveur multithread

aroslide

bon finalement la meilleur solution ça a été de faire un serveur asynchrone avec l'api winsock en programmation direct. vais bientot poster une source là dessus.

 

bye bye indy 10 nos amours sont finies.



Cette discussion est classée dans : serveur, idée, thread, multithread, clients


Répondre à ce message

Sujets en rapport avec ce message

Connection Clients / Serveur [ par isnotgood ] Bonjour à tous, Nous avons un serveur qui contient un TADOConnection vers une base access. Tous les objets de connexion (TDataSetProvider) sont dans u connexion de plusieurs clients avec serveur?? [ par dahman ] salutcomment faire connecter plusieurs clients sur un serveur?. est c qu ils peuvent tous ce connecter sur le meme port?. un prog exemple si c possibl Interbase 6.0 - Perte de connexion Client [ par ninnie00 ] Bonjour,Nous avons installé une application client/serveur avec Interbase 6.0 chez un de nos clients.Le serveur est en Windows NT4 et les clients sont Clients et Serveur [ par TiDaN326 ] Bonjour à tous,Je suis en train de créer une application qui va permettre à mon ClaN de jeu de communiquer / voir les parties réseau / voir les statis Moteur réseau [ par dxdiag ] Bonjour,    Je suis à la fac en 1ere année et j'ai un programme a réaliser avec mon groupe de 4 personnes. J'ai choisit de faire le moteur réseau, je Plusieurs clients et un seul serveur avec mailslots [ par facilus ] Bonjour,je voudrai savoir comment un serveur distingue plusieurs connection des cliens en utilisant les mailslots, ca ve dire est ce k'il fau pour cha TServerSocket : Indexage des clients [ par rafalus ] Bonjour,développant actuellement un programme fonctionnant sur internet en utilisant les composants TServerSocket et TClientSocket, j'en suis venu à r Delphi Serveur Delphi et Clients Linux [ par aroslide ] Soir à tous depuis pas mal de temps je bosse sur un serveur direct connect programmé à l'aide de delphi et j'ai pas mal d'utilisateurs qui m'ont dit q [Indy9] Gérer plusiseurs clients [ par DjKill77 ] Bonsoir à toutes et à tous,Je suis en train de coder une application qui connecte des clients à un unique serveur.Mais je n'arrive pas à diiférencier


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales