2010-09-07 8 views
0

J'ai un problème dans la connexion socketproblème dans la connexion socket

J'avais application client et serveur, l'application du serveur pour listern un port particulier. 500 clients doivent se connecter et envoyer les données pour que tout fonctionne correctement.

À un moment donné, j'ai fermé tous les clients et également fermé le serveur. Quand je démarre le serveur après 10 minutes avant 2 minutes, commencez tous les clients, très peu de clients (5-15) sont connectés. donne moi une solution.

mainSocket = nouveau Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); endpoint = nouveau IPEndPoint (IPAddress.Any, int.Parse (txt_server_port.Text)); mainSocket.Bind (noeud final); mainSocket.Listen (100); mainSocket.BeginAccept (nouveau AsyncCallback (ConnetedClient), mainSocket);

+0

Vous nous montrez le code, mec. Nous avons besoin du code. Montrez-nous le code! :) – jgauffin

+0

Vous avez probablement un délai d'attente défini sur TcpListener, donc quand le délai expire, aucun client ne peut être connecté ... Vous devriez certainement ajouter du code à votre question ... – Cipi

+0

mainSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream , ProtocolType.Tcp); point de terminaison = new IPEndPoint (IPAddress.Any, int.Parse (txt_server_port.Text)); mainSocket.Bind (point de terminaison); mainSocket.Listen (100); mainSocket.BeginAccept (nouveau AsyncCallback (ConnetedClient), mainSocket); –

Répondre

0

Si tous vos clients tentent de se connecter, il se peut que le backlog de l'écouteur soit rempli.
Vous pouvez augmenter le backlog dans le paramètre transmis à la méthode Listen.

+0

Mon backlog socket est de 100 à l'écoute. J'ai besoin d'augmenter ou de diminuer. –

+0

Exemple: socket.Listen (100) –

+0

si votre backlog est 100 et vous avez seulement 10-15 connexions ce n'est pas le problème. –