Манипулација утичнице са Питхоном

Преглед садржаја
Тхе утичнице Они су интерфејс који нам омогућава да комуницирамо са два или више рачунара путем мреже. Захваљујући томе, можемо креирати различите врсте апликација које нам помажу у преносу података путем Интернета и на тај начин видимо резултате које иначе не бисмо имали у реалном времену.
Један од најчешћих начина имплементације утичница је путем протокола ТЦПОво помаже да уз подршку оперативног система пренос путем Интернета буде нормалан и без проблема.
Пошто знамо мало о основном концепту шта су утичнице, почет ћемо са манипулацијом њихових карактеристика, једна од њих је време чекања.
Време чекањаТхе време чекања Омогућава нам да утврдимо колико времена утичница може бити пажљива за пријем или слање података, што је врло важно јер ако дође до блокаде апликације док ово вријеме чека, можемо претрпјети ризик успоравања цијелог система . Зато нам је потребно да можемо знати које је унапред одређено време чекања, а такође и да га сами успоставимо ради своје удобности.
Да бисмо то постигли, можемо користити неколико метода које постоје у ту сврху у оквиру стандардне библиотеке утичница оф Питхон.
геттимеоут ()Прва метода је геттимеоут () и како му назив говори, нуди нам почетно време чекања утичнице које проследимо као параметар.
сеттимеоут ()Друга метода је сеттимеоут () а његова функционалност је успостављање временског ограничења за дотичну утичницу изражено у милисекундама.
Сада ћемо створити мали програм који ће нам омогућити да спроведемо у дело оно што смо научили, за ово ћемо прво створити објекат типа утичнице који ће нам послужити као испитаник, за то ћемо проћи породицу и тип утичнице на конструктор и са тим можемо применити методе.
Да бисмо видели промене након што смо креирали нашу утичницу, одштампаћемо њено време чекања које мора бити нулл јер се ради о новом објекту, а затим методом сеттимеоут () Успоставит ћемо ново вријеме чекања и на крају ћемо одштампати информације, потврђујући тако да је све функционирало како треба.
Да бисмо све ово постигли морамо осигурати да имамо Питхон инсталиран у нашем систему, у његовој верзији 2.7, и имати уређивач текста који ће моћи да креира датотеке са програмима, иако вежбу можемо радити и на конзоли, међутим то је мало неугодније и није упорно, што значи да бисмо изгубили посао. Погледајмо изворни код за овај пример:
 #! / уср / бин / енв питхон импорт соцкет деф тимеоут_соцкет (): с = соцкет.соцкет (соцкет.АФ_ИНЕТ, соцкет.СОЦК_СТРЕАМ) принт "Почетно време чекања је:% с"% с.геттимеоут () с. сеттимеоут (100 ) исписати "Ново временско ограничење је:% с"% с.геттимеоут () иф __наме__ == '__маин__': тиме_оут_соцкет () 

Спремићемо ово у нову датотеку под називом соцкетТимеВаит.пи и извршићемо га у конзоли, резултат би требао бити нешто слично следећем:

Тхе тампон То је још једна од ствари које морамо узети у обзир приликом рада са утичницама, будући да је ова компонента та која ће указати на количину података коју тренутно можемо пренијети, на више бафера Што је већа количина података, то значи и већу потрошњу ресурса и дуже време чекања на њихов пренос. У супротном а доњи бафер Представља већу брзину иако ограничава количину података за пренос, зато је то вештина коју морамо овладати.
сетсоцкопт ()Да бисте нам помогли у манипулацији бафером библиотеке утичница оф Питхон нуди нам метод сетсоцкопт(), коју морамо применити на инстанцу класе соцкет. Ако желимо да променимо величину бафера, сигурно морамо прво знати оригиналну величину бафера утичнице, за то имамо и метод гетсоцкопт () и користи се на исти начин као и горе описани метод.
Направићемо мали програм који ће демонстрирати оно што смо претходно објаснили у коду на који ћемо видети да ћемо прво отићи створити пар константи које ћемо користити у нашем програму и за које ће бити дефинисано да 4096 што је вредност за величину бафера које ћемо установити.
Затим направимо инстанцу класе соцкет да одмах затражимо почетне величине бафера, а затим их одштампамо на екрану.
На крају ћемо користити метод сетсоцкопт () Да бисте поставили жељену величину бафера помоћу константи дефинисаних на почетку програма, ова метода прима три параметра, ниво, име и на крају вредност бафера.
Погледајмо код који нам помаже да наведемо оно што смо објаснили, сачуваћемо га у датотеци под називом сизе_буффер.пи:
 #! / уср / бин / енв питхон импорт соцкет ТАМ_БУФФЕР_СЕНД = 4096 ТАМ_БУФФЕР_РЕЦЕПЦИОН = 4096 деф манипулате_буффер (): соцк = соцкет.соцкет (соцкет.АФ_ИНЕТ, соцкет.СОЦК_СТРЕАМ) # Добијте величину соцкет -а. (соцкет.СОЛ_СОЦКЕТ, соцкет.СО_СНДБУФ) принт "Величина бафера [Пре]:% д"% Величина бафера соцк.сетсоцкопт (соцкет.СОЛ_ТЦП, соцкет.ТЦП_НОДЕЛАИ, 1) соцк.сетсоцкопт (соцкет.СОЛ_СОЦКЕТ, соцкет.СО_СНДБ сетсоцкопт (соцкет.СОЛ_СОЦКЕТ, соцкет.СО_РЦВБУФ, СИЗЕ_БУФФЕР_РЕЦЕПЦИОН) буфферсизе = соцк.гетсоцкопт (соцкет.СОЛ_СОЦКЕТ, соцкет.СО_СНДБУФ) исписати "Величина бафера [Након]:% д" = манипулирај_буфер__ = '__ () 

Након што напишемо наш програм, наставићемо да га извршавамо у конзоли и видећемо да добијамо вредности бафера пре и после измене његове величине.

Као и код свих врста програма, при раду са утичницама нисмо изузети од наилажења на неке грешке, проблем који морамо избјећи је да нас те грешке изненаде, јер ако то учине, наша апликација може функционирати непредвидљиво.
Зато морамо научити рјешавати грешке, на овај начин, ако дође до неочекиване ситуације, наш програм не умире, већ нас обавјештава да се нешто догодило, чиме ћемо избјећи оштећење података или сличне ситуације које утичу на стабилност нашег програма.
Како се носити са тим?То постижемо помоћу блокова покушај - осим које нам омогућавају да процењујемо ситуације, генерално укључују податке изван наше контроле и са овим можемо да делујемо у сценаријима према одговорима које добијемо. Ако упаднемо у одељак осим блока можемо користити својство грешке наше инстанце и помоћу њега исписати шта се догодило и на тај начин знати који је квар.
У следећем програму ћемо тестирати оно што смо дефинисали током објашњења. Прво ћемо створити блок који нас контролише ако је стварање сокета имало грешку или не, са овим можемо осигурати добар почетак нашег кода.
Затим ћемо проценити повезаност наше апликације са удаљеним хостом преко одређеног порта и са руковањем грешкама можемо дефинисати прилагођену поруку. Коначно позивамо нашу функцију и помоћу ње ћемо извршити описане радње.
Погледајмо следећи код који морамо да ускладиштимо у датотеци под називом еррорс_соцкет.пи и онда ћемо га покренути у конзоли:
 #! / уср / бин / енв питхон импорт сис импорт соцкет хост = 'хттп: //питхон.оргт' порт = '06' деф еррор_хандлинг (): три: с = соцкет.соцкет (соцкет.АФ_ИНЕТ, соцкет.СОЦК_СТРЕАМ) осим соцкет.еррор, е: принт "Дошло је до грешке при креирању утичнице:% с"% е сис.екит (1) покушај: с.цоннецт ((хост, порт)) осим соцкет.гаиеррор, е: принт "Грешка у адреси везе:% с "% е сис.екит (1) осим соцкет.еррор, е: принт" Грешка при повезивању:% с "% е сис.екит (1) иф __наме__ == '__маин__': еррор_хандлинг () 

Овде видимо да смо користили библиотеку сис да би се користила метода екит () и затворите програм након што дође до грешке. Такође напомињемо да је хост неисправан, тако да можемо да изнудимо грешку и тако видимо поруку на екрану. На крају напомињемо да користимо променљиву е да ухватимо грешку утичнице, чиме можемо добити стварне детаље о томе шта се догодило.
ЗапамтитиОвде морамо бити посебно опрезни са увлачење кода запамтите то Питхон Ако не користите заграде, тачка и зарез за дефинисање затварања блокова зависе искључиво од размака или табулатора које користимо, па ако то не урадимо исправно, видећемо синтаксичке грешке.
Веома је важно да прочитамо документацију Библиотека утичница Питхон тако да можете пронаћи више и бољих начина да искористите своје ресурсе.
Овим смо завршили овај водич и схватили смо како Питхон има врло лако разумљиве алате који нам омогућавају приступ свету утичницеОвим можемо започети програмирање апликација које користе мреже за обављање обраде у реалном времену, као што је добијање информација са других машина на мрежи или чак са Интернета.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave