Python - множество връзки

Съдържание
Както знаем Python Той има много библиотеки, които ни позволяват да работим и управляваме връзки в мрежи, независимо дали се свързваме с отдалечени файлове или нашата програма служи като сървър, в основни примери за използване на сокети с Python беше видяно, че с него се работи много лесно с използването на модула гнездоВъпреки това, за да бъде по -стабилно приложение, трябва да можем да обработваме множество връзки.
За обработка на множество връзки в Python можем да използваме Раздвояване и от Нарязване на нишки, за да можем да генерираме асинхронни входни и изходни процеси, които ни позволяват да посещаваме няколко връзки едновременно.
Разклоняване и нарязване
Ако сме в първите си стъпки да се научим да програмираме или ако сме правили само структурирано програмиране, може би тези термини може да изглеждат сложни, за да бъдат неизвестни, но те са прости понятия за разбиране и смилане, нека да видим определенията, преди да продължим по -нататък.
Раздвояване: Това е термин, използван в среди UNIX и се състои в направяне на бифуркация, с процес, който го дублираме и след това имаме два равни процеса, но всеки със своя обхват, първоначалният процес е известен като родителски процес, а дублираният процес е известен като дъщерния процес, ако направим аналогия с научната фантастика, можем да ги разглеждаме като паралелни вселени, където съществуват едни и същи неща, само че те могат да се държат различно в същите точки.
Недостатъкът на Раздвояване е, че това може да бъде много скъпо по отношение на ресурсите и затова имаме Нарязване на нишки, а Конец Това е нишка, в този случай нишките са подпроцеси, които принадлежат към един и същ процес, споделящи памет и ресурси, по този начин намаляваме цената на ресурсите на процесора, но чрез споделяне на памет откриваме проблема, че трябва да бъдем много внимателен с елементите, към които Конци за да не доведе до компрометирани операции.
Сега, когато знаем теорията и основните понятия, ще видим някои примери, с които можем да видим приложението Python.
Както казахме в началото благодарение на големия брой модули и библиотеки, съществуващи в Python, създаването на програми с мрежови функционалности е много просто, така че можем да се концентрираме върху логиката, а не върху техническите аспекти.
Нека видим на следващото изображение пример за Раздвояване, тогава ще обясним какво се случва с кода:

Първото нещо, което правим, е да импортираме модулите, от които се нуждаем SocketServer, важното, което разглеждаме е ForkingMixIn който ще отговаря за управлението на дублирането на процесите с всяка заявка, тогава ние определяме класа Сървър Y МанипулаторВ рамките на Handler поставяме конструктор, който е този, който ще управлява какво ще се случи с входящите връзки, в този случай той ще получи името на клиента и ще направи екранен печат на съобщение; Накрая инстанцираме класа Server, предаваме му параметрите, първо порта, където той ще приема връзки и след това класа Манипулатор, накрая наричаме метода serve_forever да стартирате сървъра, така че да може да управлява клиентските заявки.
Тъй като виждаме, че това приложение е доста просто, нека видим как можем да постигнем нещо подобно, като използваме Конци, на следното изображение имаме пример:

Можем да осъзнаем, че това е почти същият код по -горе с разликата, която вместо да използваме ForkingMixIn, ние използваме ThreadingMixInТака че, както виждаме, това са ключовите библиотеки за това поведение при създаване на програми, които приемат множество връзки.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave