2009-03-07 5 views
1

J'ai besoin de mon serveur pour rester connecté au serveur. Est-ce que quelqu'un sait comment faire ça? Ou poster des liens tutoriels quelque chose?Comment redémarrer un programme de sockets?

En outre, il indique quand il redémarre 'ne pouvait pas accepter le client' alors comment je effacer tout et le faire accepter?

+0

Normalement, les serveurs ne se connectent pas aux serveurs. Et il y a trop d'ambiguïté "c'est dans ce qui est maintenant le deuxième paragraphe. S'il vous plaît, clarifiez ce que vous demandez, même si Brian Bondy a donné de bons conseils de toute façon. –

Répondre

5

Code Serveur:

Pour votre code côté serveur, faire une boucle enveloppant l'acceptation d'appel. Pour le socket accepté créé, créez un nouveau thread, de sorte que l'acceptation suivante sera appelée immédiatement. Au démarrage du serveur, vous pouvez également utiliser l'indicateur SO_REUSEADDR. De cette façon, si vous avez eu un crash, ou même un redémarrage rapide du programme, votre serveur pourra à nouveau utiliser le même port sans problème.

Code client:

Pour votre code client vous suffit de cocher une erreur de socket et si cela se produit juste d'établir une nouvelle connexion.

Autres ressources:

Autres options:

Au lieu de simples prises de style bsd, vous pouvez également essayer d'utiliser boost asio pour faciliter la programmation socket. Vous pouvez consulter leur examples page.

Questions connexes