сокет програмиране

  • Създаване на гнездо
  • Свързването на местните имена
  • присъединяване
  • трансфер на данни
  • затваряне на гнездото
  • Примерни функции за създаване WWW konnektsii

Създаване на гнездо

За да създадете гнездо гнездо система повикване.

Това обаждане е въз основа на информацията за комуникация домейн и вида на гнездо на. За да използвате интернет функции, трябва да бъдат те, както следва:

  • комуникация домейн - AF_INET (интернет протоколи).
  • тип на контакта - SOCK_STREAM; Този тип предоставя последователна, надеждна, фокусирана върху създаването на двупосочна комуникация поток от байтове.

Над контакта с вида на потока се споменава. Кратко описание на другите видове контакти по-долу:

  • Datagram гнездо - поддържа двупосочен поток от данни. Това не е гарантирано, че този поток ще бъде последователна, надеждна, и че данните няма да бъдат дублирани. Важна характеристика на гнездото е, че данните писмено предварително определени граница.
  • Raw гнездо - позволява на потребителя достъп до основната комуникационен протокол поддържа от черпене на гнездо. Тези контакти са обикновено datagram- ориентирани.

функция гнездо създава крайна точка за комуникация и връща файлов дескриптор, отнасящи се до контакт, или -1 при грешка. Това ЕВРОВОК се използва в бъдеще, за да се установи връзка.

За да създадете тип поток контакт с протокола TCP, осигуряващи предаване на подкрепа, в режим на набиране на сокет са както следва:

Свързването на местните имена

Bindable име (наименование) е низ от байтове с различна дължина, която се тълкува от поддържаните протоколи. Тълкуването може да варира в различни комуникационни домейни.

присъединяване

От страна на клиента връзка е създадена с помощта на стандартен функция свържете:

Свържете се връща 0, ако обаждането е била успешна. Връщане стойност от -1 показва, че процесът на комуникация е възникнала някаква грешка. Ако се окаже успешна, процесът на извикване на функция може да се управлява с гнездо дръжка функции, използвайки четат и пишат, и затваряне на канала с помощта на близо функция.

където и е описание гнездо и qlength е максималният брой на исканията за установяване на комуникация, които могат да стоят на опашка, чакайки обработка на сървъра; този брой може да бъде ограничено от функции на системата.

Когато сървърът получи заявка от клиент и да вземе решение за създаване на комуникация, той създава ново гнездо и го свързва с асоциацията, което се равнява на "слушане гнездо". За Интернет домейн това означава, че един и същ номер порт. За тази цел на поканата система приемам:

Контактът е свързано клиент и сокет, който бе върнат на функцията приемам, се използват за установяване на комуникация между сървъра и клиента.

трансфер на данни

Когато комуникацията се определя от различните функции може да започне процеса на прехвърляне на данни. Когато комуникация на разположение, потребителят може да изпраща и получава съобщения с помощта на функциите за четене и запис:

Призовава за изпращане и Получ почти идентично четат и пишат, освен, че аргументът на добавената знамена.

Един или повече флагове могат да бъдат обозначени с ненулеви стойности, като например следните:

затваряне на гнездото

Когато взаимодействащи модули решават да прекратят изпращането на данни и затваряне на сесията, те обменят трипътен ръкостискане със сегменти, съдържащи набор малко "от подателя не е нищо повече данни" (това малко се нарича още FIN битова).

Ако вече не се използва гнездото, процесът може да го затвори с помощта на адрес близо Е-, наричайки го със съответния цокъл дръжката:

Ако данните са свързани с контакта, обещавайки доставка (поток тип гнездо), системата ще се опита да прехвърли данните. Въпреки това, след доста дълъг период от време, ако данните все още не е доставено, те ще бъдат отхвърлени. Ако потребителят желае да прекрати процеса никакви данни, тя може да го направи, като се обадите спирането на този контакт, за да го затворите. изключване на повикванията е "мигновено" отхвърляне на всички предизвикателства в опашката за данни. обадите в следния формат:

къде как една от следните стойности:

Примерни функции за създаване WWW konnektsii