У меня есть следующая программа, чтобы открыть множество сокетов и держать их открытыми для стресс-тестирования одного из наших серверов. Есть несколько проблем с этим. Я думаю, что это может быть намного эффективнее, чем рекурсивный вызов, и он все еще открывает сокеты последовательным способом, а не параллельным способом. Я понимаю, что есть такие инструменты, как ab, которые, вероятно, могут имитировать то, что я пытаюсь сделать, но я надеюсь расширить свои знания Python. Это то, что я должен переписать как многопоточный или многопроцессный?
> #!/usr/bin/env python
>
> import socket, time, sys
> sys.setrecursionlimit(2000)
>
> def open_socket(counter):
> sockname = "s" + str(counter)
> port = counter + 3000
> sockname = socket.socket()
> sockname.bind(('localhost', port))
> sockname.listen(1)
> if counter == 2:
> time.sleep(20)
> elif counter > 2:
> counter = counter -1
> open_socket(counter)
>
> open_socket(1500)