Питхон

Шаљите и примајте УДП пакете путем Питхона

Шаљите и примајте УДП пакете путем Питхона
Већ знамо за два главна протокола транспортног слоја као што су ТЦП и УДП. За више информација о ТЦП и УДП можете погледати референтни одељак.  У овом чланку ћемо научити како слати и примати УДП пакете помоћу питхон програма.

Очекивања:

Ево неколико кључних тачака које се могу научити из овог чланка

  1. Слање неког текста помоћу питхон програма који користи УДП протокол.
  2. Примање неког текста помоћу питхон програма који користи УДП протокол.
  3. Проверите УДП пакет у Виресхарк-у.
  4. Сазнајте о питхон коду за слање и примање УДП пакета.

Дијаграм општег подешавања:

Систем А и Б би требало да пингују једни друге.

Претпоставке или ограничења:

  1. Оба система би требало да имају Линук са Убунтуом. Код може или не мора радити на другим оперативним системима попут Виндовс10, МАЦ итд.
  2. Оба система треба да имају питхон верзију 3. Овај код може или не мора радити на питхон 2.7 верзија.

Напомена: Можете да проверите референцу за испробавање слања и примања УДП пакета путем Линук ЦЛИ пре него што питхон датотеке изврше исти задатак.

Питхон датотеке:

Постоје две питхон датотеке сервер.пи и клијент.пи. датотека сервера и датотека клијента треба да буду присутне у систему сервера, односно у систему клијента.

Сервер.пи

импорт соцкет
импорт сис
ако је лен (сис.аргв) == 3:
# Набавите „ИП адресу сервера“, а такође и „број порта“ од
аргумент 1 и аргумент 2
ип = сис.аргв [1]
порт = инт (сис.аргв [2])
иначе:
принт ("Покрени као: питхон3 сервер.пи ")
излаз (1)
# Креирајте УДП утичницу
с = утичница.утичница (утичница.АФ_ИНЕТ, соцкет.СОЦК_ДГРАМ)
# Прикључите утичницу за порт
сервер_аддресс = (ип, порт)
с.бинд (сервер_аддресс)
принт ("Да бисте изашли из програма, притисните Цтрл + ц !!")
вхиле Труе:
принт ("####### Сервер послуша #######")
подаци, адреса = с.рецвфром (4096)
испис ("\ н \ н 2. Сервер примљен: ", подаци.декодирај ('утф-8'), "\ н \ н")
сенд_дата = инпут ("Упишите текст за слање =>")
с.сендто (сенд_дата.енцоде ('утф-8'), адреса)
испис ("\ н \ н 1. Сервер је послат: ", сенд_дата," \ н \ н ")

Клијент.пи

импорт соцкет
импорт сис
ако је лен (сис.аргв) == 3:
# Набавите „ИП адресу сервера“, а такође и „број порта“ из аргумента 1 и аргумента 2
ип = сис.аргв [1]
порт = инт (сис.аргв [2])
иначе:
принт ("Покрени као: клијент питхон3.пи ")
излаз (1)
# Креирајте сокет за сервер
с = утичница.утичница (утичница.АФ_ИНЕТ, соцкет.СОЦК_ДГРАМ, 0)
принт ("Да бисте изашли из програма, притисните Цтрл + ц !!")
# Пошаљите податке путем УДП протокола
вхиле Труе:
сенд_дата = инпут ("Упишите текст за слање =>");
с.сендто (сенд_дата.енцоде ('утф-8'), (ип, порт))
испис ("\ н \ н 1. Клијент је послат: ", сенд_дата," \ н \ н ")
подаци, адреса = с.рецвфром (4096)
испис ("\ н \ н 2. Клијент је примио: ", подаци.декодирај ('утф-8'), "\ н \ н")
# затворите утичницу
с.Близу()

Слање / примање УДП пакета:

Узмимо пример као што ћемо послати УДП пакет из система А у систем Б. Дакле, у концепту сервер-клијент, морамо покренути сервер на страни система Б, а клијент на страни система А.

Такође имамо важеће ИП адресе.

ИП систем система: 192.168.1.6
Систем Б ИП: 192.168.1.102

Сада ћемо, за разлику од слања и примања УДП пакета путем Линук ЦЛИ-а, радити сервер.пи у Систему, Б [192.168.1.102] и тада ћемо трчати клијент.пи у систему А [192.168.1.6].

Како покренути сервер.пи у 192.168.1.102?

Ево наредбе за покретање сервера.пи

$ питхон3 сервер.пи 192.168.1.102 4444

Ево снимка екрана

Овде постоје два аргумента за програм питхон. 1ст аргумент је ИП адреса самог сервера, овде је 192.168.1.102 и 2нд аргумент је порт који ће сервер слушати, овде смо изабрали 4444.

Како покренути клијента.пи у 192.168.1.6?

Ево наредбе за покретање клијента.пи

$ питхон3 клијент.пи 192.168.1.102 4444

Ево снимка екрана

Овде постоје два аргумента за програм питхон. 1ст аргумент је ИП адреса сервера, овде је 192.168.1.102 и 2нд аргумент је порт на којем је покренут сервер. За наш пример је 4444.

Пошаљите или примите текст:

Као што видите, спремни смо за комуникацију између два система. Али прво морамо кренути од клијента. Укуцајмо нешто у клијенту и видимо да ли допире до сервера или не.

Пошаљите податке од клијента: „Ја сам од клијента“

Клијент обрасца снимка екрана:

Сада би ова клијентска порука требала доћи на сервер. Ево снимка екрана сервера.

Сада можемо видети на страни сервера, такође имамо могућност да пошаљемо нешто клијенту. Покушајмо то.

Пошаљите податке од клијента: „Ја сам са сервера“

Снимак екрана сервера:

И овде је снимак екрана на страни клијента.

Сада ће ово трајати бесконачно много пута док не зауставимо програм питхон користећи Цтрл + ц.

Проверите УДП пакет у Виресхарк-у:

Сада смо обавили одређену комуникацију, али како да сазнамо да је УДП коришћен за слање или примање тих пакета. Дакле, снимање можемо проверити у Виресхарку.

Погледајмо пакет када клијент [192.168.1.6] послао је податке [„Ја сам од клијента“] серверу [192.168.1.6].

Објашњење кода:

Основна објашњења питхон кода потражите у одељку „Пошаљите пренос датотеке Питхон Соцкет Филе“ у референтном одељку.

Објаснићемо само важне кодове линија за клијентску и серверску питхон датотеку. Унутар кода клијента и сервера налазе се корисни коментари.

Објашњење клијентског кода:

ако је лен (сис.аргв) == 3:

Горњи ред је потребан да би се проверило да ли је корисник пренео потребне обавезне аргументе. Иначе ће програм изаћи. Иста провера постоји и у серверском програму.

с = утичница.утичница (утичница.АФ_ИНЕТ, соцкет.СОЦК_ДГРАМ, 0)

Горња линија је за стварање соцкет сервера са УДП-ом [СОЦК_ДГРАМ] протокол. Исти код је и на серверу.пи.

вхиле Труе:

За покретање програма у бесконачној петљи док корисник не изврши Цтрл + ц. Исти код је и на серверу.пи.

с.сендто (сенд_дата.енцоде ('утф-8'), (ип, порт))

Да пошаљу податке за поменуте ип и Лука број.

подаци, адреса = с.рецвфром (4096)

Да бисте примили све податке који долазе са сервера. Исти код је и на серверу.пи.

Објашњење кода сервера:

с.сендто (сенд_дата.енцоде ('утф-8'), адреса)

Пошаљите податке на адресу клијента.

Закључак:

УДП податке можемо слати или примати помоћу програма питхон. Интерно користи механизам клијентског сервера.

Референце:

Да бисте разумели ТЦП: хттпс: // линукхинт.цом / тцп_пацкет_цаптуре_аналисис /
Да бисте разумели УДП: хттпс: // линукхинт.цом / удп_виресхарк_аналисис /
Слање и примање УДП пакета путем Линук ЦЛИ:
хттпс: // линукхинт.цом / сенд_рецеиве_удп_пацкетс_линук_цли /
Пренос датотеке Питхон Соцкет датотеке:
хттпс: // линукхинт.цом / питхон_соцкет_филе_трансфер_сенд /

Како да промените леви и десни тастер миша на рачунару са Виндовс 10
Сасвим је нормално да су сви уређаји рачунарског миша ергономски дизајнирани за дешњаке. Али постоје доступни уређаји за миш који су посебно дизајнира...
Емулирајте кликове мишем лебдењем помоћу миша без клика у оперативном систему Виндовс 10
Коришћење миша или тастатуре у погрешном положају прекомерне употребе може резултирати многим здравственим проблемима, укључујући напрезање, синдром к...
Додајте покрете миша у Виндовс 10 помоћу ових бесплатних алата
Последњих година рачунари и оперативни системи су се увелико развили. Било је време када су корисници морали да користе команде за навигацију кроз мен...