сокет програмиране
- Създаване на гнездо
- Свързването на местните имена
- присъединяване
- трансфер на данни
- затваряне на гнездото
- Примерни функции за създаване WWW konnektsii
Създаване на гнездо
За да създадете гнездо гнездо система повикване.
Това обаждане е въз основа на информацията за комуникация домейн и вида на гнездо на. За да използвате интернет функции, трябва да бъдат те, както следва:
- комуникация домейн - AF_INET (интернет протоколи).
- тип на контакта - SOCK_STREAM; Този тип предоставя последователна, надеждна, фокусирана върху създаването на двупосочна комуникация поток от байтове.
Над контакта с вида на потока се споменава. Кратко описание на другите видове контакти по-долу:
- Datagram гнездо - поддържа двупосочен поток от данни. Това не е гарантирано, че този поток ще бъде последователна, надеждна, и че данните няма да бъдат дублирани. Важна характеристика на гнездото е, че данните писмено предварително определени граница.
- Raw гнездо - позволява на потребителя достъп до основната комуникационен протокол поддържа от черпене на гнездо. Тези контакти са обикновено datagram- ориентирани.
функция гнездо създава крайна точка за комуникация и връща файлов дескриптор, отнасящи се до контакт, или -1 при грешка. Това ЕВРОВОК се използва в бъдеще, за да се установи връзка.
За да създадете тип поток контакт с протокола TCP, осигуряващи предаване на подкрепа, в режим на набиране на сокет са както следва:
Свързването на местните имена
Bindable име (наименование) е низ от байтове с различна дължина, която се тълкува от поддържаните протоколи. Тълкуването може да варира в различни комуникационни домейни.
присъединяване
От страна на клиента връзка е създадена с помощта на стандартен функция свържете:
Свържете се връща 0, ако обаждането е била успешна. Връщане стойност от -1 показва, че процесът на комуникация е възникнала някаква грешка. Ако се окаже успешна, процесът на извикване на функция може да се управлява с гнездо дръжка функции, използвайки четат и пишат, и затваряне на канала с помощта на близо функция.
където и е описание гнездо и qlength е максималният брой на исканията за установяване на комуникация, които могат да стоят на опашка, чакайки обработка на сървъра; този брой може да бъде ограничено от функции на системата.
Когато сървърът получи заявка от клиент и да вземе решение за създаване на комуникация, той създава ново гнездо и го свързва с асоциацията, което се равнява на "слушане гнездо". За Интернет домейн това означава, че един и същ номер порт. За тази цел на поканата система приемам:
Контактът е свързано клиент и сокет, който бе върнат на функцията приемам, се използват за установяване на комуникация между сървъра и клиента.
трансфер на данни
Когато комуникацията се определя от различните функции може да започне процеса на прехвърляне на данни. Когато комуникация на разположение, потребителят може да изпраща и получава съобщения с помощта на функциите за четене и запис:
Призовава за изпращане и Получ почти идентично четат и пишат, освен, че аргументът на добавената знамена.
Един или повече флагове могат да бъдат обозначени с ненулеви стойности, като например следните:
затваряне на гнездото
Когато взаимодействащи модули решават да прекратят изпращането на данни и затваряне на сесията, те обменят трипътен ръкостискане със сегменти, съдържащи набор малко "от подателя не е нищо повече данни" (това малко се нарича още FIN битова).
Ако вече не се използва гнездото, процесът може да го затвори с помощта на адрес близо Е-, наричайки го със съответния цокъл дръжката:
Ако данните са свързани с контакта, обещавайки доставка (поток тип гнездо), системата ще се опита да прехвърли данните. Въпреки това, след доста дълъг период от време, ако данните все още не е доставено, те ще бъдат отхвърлени. Ако потребителят желае да прекрати процеса никакви данни, тя може да го направи, като се обадите спирането на този контакт, за да го затворите. изключване на повикванията е "мигновено" отхвърляне на всички предизвикателства в опашката за данни. обадите в следния формат:
къде как една от следните стойности:
Примерни функции за създаване WWW konnektsii