максимальное TCP-соединение в Python - PullRequest
2 голосов
/ 13 октября 2011

В Python. локальный я написал сырой сервер только что прочитал сокет TCP, скажем, в порту 50001. тогда попробуйте максимальное количество клиентских подключений:

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()

но около 3000 соединений, исключение происходит: [Errno 10055] Операция над сокетом не может быть выполнена из-за недостатка буферного пространства в системе или из-за переполнения очереди

Так, как я могу решить это и максимизировать соединение

1 Ответ

2 голосов
/ 13 октября 2011

Отметьте ulimit и quota для поля и пользователя, запускающего скрипт. /etc/security/limits.conf также может содержать ограничения на ресурсы, которые вы можете изменить.

Попробуйте запустить ulimit -s unlimited.

Кроме того, ulimit -n покажет максимально допустимое количество дескрипторов / сокетов открытого файла. Это также может потребовать модификации.


Некоторые справочные страницы и ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...