-
TCP/UDP
Bonjour,
j'ai besoin de faire un serveur en relation avec plusieurs clients (une 20aine). (en c++ avec les sockets win)
J'ai pens� que le protocole tcp �tait plus adapt� que l'udp. C'est pour faire transiter des donn�es un peu comme un chat....
Par contre, est ce que je me trompe en pensant que le serveur ne peut �tre en relation qu'avec un seul client sur un m�me port ? Par cons�quent il faudrait autant de ports que de clients ?
Merci d'avance :P
-
Tu te trompe, il peut y avoir 300client sur un m�me port, il faut juste que ton client boucle sur l'acoute du port.
-
ah bon, j'�tais persuad� du contraire.... :oops:
Donc il n'y a pas d'interets � boucler sur un port N et attribuer un port i different pour chaque client, autant tout faire sur le m�me port non ? (en tcp tjrs)
-
Oui, je dirais m�me que la fasson a la quel tu penssais serais impossible :
Si tu �coute sur un port N, le client peut se connecter en X,Y,Z, il tomberas jamais sur ton serveur....
-
Oki merci bcp :D,
juste une derniere question de strat�gie (c�t� serveur avec r�seau ethernet):
-est ce que faire un tableau des sockets, puis verifier dans une boucle les status pour recevoir ou envoyer un message est une mauvaise solution ? (la boucle est dans un thread).
-Peut etre est il preferable d'attribuer un thread � chaque socket ou d'utiliser des sockets asynchrones ?
-
tu as le choix, en fait.
la fonction standard select() permet de v�rifier simultan�ment l'�tat de plusieurs sockets, ensuite tu peux traiter l'un apr�s l'autre ceux qui ont des donn�es � traiter...
avec select(), tu peux tout faire dans le m�me thread, tout comme avec les fonctions sp�cifiques � Windows (notamment les sockets asynchrones). Sans select(), g�n�ralement tu te retrouve oblig� d'utiliser un thread par client.
-
Ou� c'est ce que je pensais,
merci beaucoup pour vos r�ponses :ccool: