Мазмунга өтүү

Сокеттер менен тармактык программалоо

Сабактын башталышы

Сокеттер менен тармактык программалоо

socket модулу менен тармак менен түз, ар бир байт боюнча сүйлөшүңүз

Негизги идея: Сокет — бул эки тараптуу тармактык байланыштын бир учтук чекити. TCP-сокет эки чекиттин ортосунда иреттелген, ишенимдүү байт агымын берет, алардын ар бири IP-дарек жана порт номери менен аныкталат. socket модулу — операциялык системанын BSD-сокет API'син жука ороп турган Python обёрткасы. Андан жогорудагылардын баары — HTTP-клиенттер, asyncio, веб-фреймворктор, маалымат базасынын драйверлери — акырында ушул чакырууларга негизделген. Аларды түшүнүү бүт стектин сырын ачат.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • TCP-сокет түзүү жана AF_INET / SOCK_STREAM түшүнүү,
  • серверди bind -> listen -> accept аркылуу, клиентти connect аркылуу өткөрүү,
  • байттарды (эч качан str эмес) жөнөтүү жана кабыл алуу жана жарым-жартылай окууларды иштетүү,
  • байт агымы өзүнчө билдирүүлөргө айланышы үчүн билдирүүлөрдү кадрлоо,
  • минималдуу эхо/чат-сервер куруу жана анын соодалашууларын талкуулоо.

1. Сокет чындыгында эмне

Сокет — бул операциялык системанын объекти, файлга окшош дескриптор, тармактык маектешүүнүн бир учун билдирет. Сиз аны дарек үй-бүлөсүн жана сокет түрүн көрсөтүп түзөсүз:

import socket

# AF_INET  -> IPv4 дарек берүү (host, port)
# SOCK_STREAM -> TCP: иреттелген, ишенимдүү байт агымы
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

(host, port) жупу — бул дарек. Хост — бул IP-дарек, мисалы "127.0.0.1" (бул машина) же "0.0.0.0" (бардык интерфейстер); порт — 16 биттик сан (0–65535), бир машинага бир эле учурда көптөгөн көз карандысыз кызматтарды кармоого мүмкүндүк берет. Байланыш төрттүк (жергиликтүү ip, жергиликтүү порт, алыскы ip, алыскы порт) менен бир маанилүү аныкталат, ошондуктан бир сервер порту миңдеген клиенттерди бир убакта тейлей алат.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө