Comment puis-je accepter de plusieurs clients à un serveur TCP?
J'ai actuellement un serveur TCP mis en place qui peut accepter une connexion à partir d'un client et l'écho de tout ce que le client entrées. Comment puis-je faire plusieurs clients se connectent au serveur et d'avoir leurs commentaires envoyés à tous les clients?
Il semble que je devrais fourche, mais je ne suis pas entièrement sûr de savoir comment...
Sur le serveur, dois-je placer une boucle infinie à partir de l'accepter (ou écouter?) qui fourche quand il ya une nouvelle connexion? Ensuite, sur le processus de l'enfant que j'aurais à proximité de la prise de la précédente et le connecte à nouveau, mais encore une fois je ne suis pas entièrement sûr.
Que serait le pseudo-code pour le juste de la fourche et de la prise de manipulation? Ma conjecture:
while(1) //before connection or accept?
pid = fork()
if(pid==0)
//open socket from client
//run the rest of the code
//end process when client disconnects
else
//close socket from client
OriginalL'auteur countofmontecristo | 2014-12-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver sur Internet de nombreux exemples, d'abord j'ai trouvé:
http://www.tutorialspoint.com/unix_sockets/socket_server_example.htm
Garder à l'esprit que les processus (ou thread) par l'approche client n'est pas à l'échelle.
Modernes utilisent des serveurs non bloquants principal de l'expédition de la boucle.
Jetez un oeil à libevent.
Ici est un exemple de l'echo server à l'aide de libevent:
https://github.com/jasonish/libevent-examples/tree/master/echo-server
OriginalL'auteur Alexander Altshuler
S'avère le pseudo-code ressemble à ceci:
OriginalL'auteur countofmontecristo