2011-10-13 6 views
2

En Python. localhost je l'ai écrit un serveur brut vient d'être lu socket TCP, par exemple dans le port 50001. essayez les connexions client max:la connexion TCP maximale en python

def rawMultiConn(threadnum = 10000): 
    g_event = threading.Event() 
    def threadfn(): 
     sockets = [socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        for i in range(threadnum)] 
     for s in sockets: 
      s.connect(('localhost', SERVER_PORT)) 
     g_event.wait() 
     for s in sockets: s.close() 

    t = threading.Thread(target = threadfn) 
    t.start() 
    g_event.set() 
    t.join() 

mais environ 3000 connexions, exception se produit: [Errno 10055] Une opération sur un socket pourrait pas être exécuté parce que le système manquait d'espace tampon suffisant ou parce qu'une file d'attente était pleine

Alors, comment puis-je résoudre et max la connexion

Répondre

2

Vérifiez la ulimit et quota pour la boîte et l'utilisateur exécutant le scénario. /etc/security/limits.conf peut également contenir des restrictions de ressources que vous pourriez vouloir modifier.

Essayez d'exécuter ulimit -s unlimited.

En outre, ulimit -n affichera le nombre maximal de descripteurs de fichiers ouverts/sockets autorisés. Cela peut aussi nécessiter des modifications.


Quelques pages de manuel et des liens de référence:

+0

Bien que la question ne précise pas, une réponse complète inclurait également d'autres systèmes d'exploitation. – OrangeDog