Компьютерлік желіге арналған Socket бағдарламалауына шолу

Розетка компьютерлік желіні бағдарламалаудың ең іргелі технологияларының бірі болып табылады. Сокет желілік бағдарламалық жасақтаманың қосымшаларына желілік аппараттық және операциялық жүйелерде орнатылған стандартты механизмдерді қолдануға мүмкіндік береді.

Интернеттің бағдарламалық жасақтамасын әзірлеудің тағы бір ерекшелігі сияқты, ол сокет технологиясы Интернеттен көп уақыт бұрын болған. Бүгінгі таңда ең танымал желілік бағдарламалық қамтамасыз етудің көптеген қосымшалары розеткаларға негізделген.

Сіздің желіңіз үшін қандай сокеттер жасай алады

Розетка бағдарламалық қамтамасыз етудің екеуі ( нүктелік-нүкте қосылысы деп аталатын) арасындағы бір қосылымды білдіреді. Бағдарламалық жасақтаманың екіден астам бөлігі клиент / сервер немесе таратылған жүйелермен бірнеше розеткалар арқылы байланыса алады. Мысалы, көптеген Веб-браузерлер бір серверде жасалған сокеттер тобы арқылы бір веб-сервермен бір уақытта байланыса алады.

Әдетте сокетке негізделген бағдарламалық жасақтама желінің екі бөлек компьютерінде жұмыс істейді, бірақ сокеттер жергілікті компьютерде ( интервал ) бір компьютерде байланысу үшін пайдаланылуы мүмкін. Сокеттер екі жақты болып табылады, яғни қосылымның кез-келген жағы деректерді жіберуге және алуға мүмкіндік береді. Кейде коммуникацияны бастайтын бір бағдарлама «клиент» деп аталады, ал басқа қолданушы «сервер» деп аталады, бірақ бұл терминология өзара әрекеттесу үшін теңдестіруге әкеледі және әдетте аулақ болу керек.

Socket API және кітапханалары

Интернетте стандартты қолданбалы бағдарламалау интерфейстерін (API) қолданатын бірнеше кітапханалар бар. Бірінші негізгі пакет - Беркли Сокет Кітапханасы әлі де UNIX жүйелерінде кеңінен қолданылады. Басқа өте кең тараған API - Microsoft операциялық жүйелеріне арналған Windows Sockets (WinSock) кітапханасы. Басқа компьютерлік технологияларға қарағанда, сокет API-лары жетілдірілген: WinSock 1993 жылдан бері жұмыс істеп келеді және 1982 жылдан бері Беркли розеткалары қолданылады.

Сокет API-лары шағын және қарапайым. Функциялардың көбісі read () , write () және close () сияқты файл кіріс / . Қолданыстағы функция бағдарламалау тілі мен таңдалған сокет кітапханасына байланысты.

Socket интерфейсінің түрлері

Socket интерфейстерін үш санатқа бөлуге болады:

  • Ең көп тараған типті ағындық сокеттер екі байланысушы тарап бірінші розетка байланысын орнатуды талап етеді, одан кейін осы байланыс арқылы жіберілген кез келген деректер ол жіберілген тәртіпке келу кепілдігіне ие болады - байланысқа бағытталған бағдарламалау деп аталады модель.
  • Деректер схемасы «қосылымсыз» семантикасын ұсынады. Деректермен қосылымдар ағындардағыдай емес, айқын емес. Кез-келген тараптар датраммаларды қажет болған жағдайда ғана жібереді және басқа біреудің жауап беруін күтуде; хабарлар жіберілу барысында жоғалып кетуі немесе бұйрығы бойынша алынуы мүмкін, бірақ бұл мәселелерді шешуге арналған сокеттер емес, қолданба жауапкершілігі. Датаграммалық сокеттерді қолдану кейбір жағдайларда қосымша сценарийлерді қолдануға қарағанда кейбір жағдайларда оларды пайдалануды негіздейтін өнімділікті арттыру және қосымша икемділік бере алады.
  • Үшінші түрі розетка - шикізат розетка - TCP және UDP сияқты стандартты протоколдарға арналған кітапхананың бекітілген қолдауын айналып өтеді. Шикізат розеткалары әдеттегі төмен деңгейлі хаттамаларды әзірлеу үшін пайдаланылады.

Желілік протоколдардағы сокет қолдау

Заманауи желілік розетка әдетте Интернет, IP, TCP және UDP протоколдарымен бірге қолданылады. Интернет протоколы үшін сокеттерді қолданатын кітапханалар ағындар үшін TCP, деректерді өңдеу үшін UDP және шикізат розеткалары үшін IP-ды пайдаланады.

Интернетте байланысу үшін, IP сокет кітапханалары нақты компьютерлерді анықтау үшін IP мекенжайын пайдаланады. Интернеттің көптеген бөліктері атаулармен ( мысалы , 208.185.127.40) орнына пайдаланушылардың және сокет бағдарламашыларының компьютермен атымен ( мысалы , «thiscomputer.wireless.about.com») жұмыс істей алу үшін атау қызметтерімен жұмыс істейді. Ағын және датрамма сокеттері IP- порты нөмірлерін бірнеше бағдарламаларды бір-бірінен ажырату үшін пайдаланады. Мысалы, интернеттегі веб-браузерлер веб-серверлермен сокет байланыстары үшін әдепкі порт ретінде 80 портын біледі.