ЗНАЕТЕ ЛИ ВЫ?

Директивы препроцессора. Использование директивы #include для подключения header-файлов.



Директивы препроцессора (прекомпилера).

Директивы препроцессора исполняются компилятором на стадии предварительной обработки, предшествующей собственно компиляции. Обычно они сводятся к подстановке, замене или удалении участков текста из программы, подаваемой на вход компилятора. Директивы препроцессора, записанные в модуле, действуют только в его пределах.

#include

Директива #include производит прямую текстовую подстановку содержимого какого-либо файла непосредственно в то место модуля, где она была применена. Существует 2 формы этой директивы:

#include <my.h> - в этом случае подставляемый файл берётся из каталога для хранения хэдер-файлов стандартных библиотек (путь к нему прописывается в параметрах транслятора). Если файл отсутствует в этом каталоге, то препроцессор выдаёт ошибку.

#include "my.h" - в этом случае подставляемый файл берётся из текущего каталога. Если файл отсутствует в этом каталоге, то он берётся из каталога для хранения хэдер-файлов стандартных библиотек. Если же файл отсутствует и в этом каталоге, то препроцессор выдаёт ошибку.

Допускается применение относительных и абсолютных путей к файлу (последнее нежелательно, т.к. в этом случае проект становится труднопереносимым на другую машину):

#include "..\UDPSEND\TPASocket.h"

Заметим, что в данном случае, в написании пути используется одинарный обратный слэш, хотя в большинстве случаев в C используется двойной слэш, т.к. комбинация одинарного слэша и последующего символа означают спецсимвол.

Вопреки распространённому ошибочному мнению, директива #include не подсоединяет библиотеки к программе. Эта директива подключает хэдер-файлы используемых библиотек, т.е. файлы с описаниями (декларациями) их функций. В хэдер-файлах описаны имена функций, списки их параметров, а также дополнительная информация, например наборы констант и т.п. На этапе предварительной обработки, содержимое этих файлов с помощью директивы #include подставляется в текст модуля программы, что эквивалентно обычному объявлению функций, используемых в модуле, в самом его начале. Это делает возможным компиляцию модуля. Подключение же самих библиотек, содержащих реализации используемых функций (а точнее, уже откомпилированный их бинарный код), происходит на этапе компоновки (линковки). При этом стандартные библиотеки подключаются автоматически (компоновщик автоматически детектирует какую библиотеку надо подключить), а пользовательские библиотеки должны быть включены в проект вручную, и пути к файлам, их содержащим, должны быть прописаны в файле проекта.


Билет

Сеть интернет. Адресация узлов (IP-адреса, доменные адреса, URL). Сервисы и используемые протоколы передачи данных.

Internet – это совокупность сетей, использующая для объединения сетей единый протокол обмена информацией TCP/IP. Само названиеInternet означает "между сетей".

 

Система адресации в Internet

Для каждого компьютера устанавливаются два адреса: цифровой IP-адрес (IP – Internetwork Protocol – межсетевой протокол) и доменный адрес.

Оба эти адреса могут применяться равноправно.

IP-адрес стандарта IP v.4 имеет общую длину 4 байта. IP – адрес состоит из четырех сегментов –чисел, разделенных точками. Каждое число не превышает 255. Например, 192.168.14.5

Протокол IP v.6 оперирует адресами длиной в 16 байт. Компоненты адреса записываются в шестнадцатеричной форме в следующем виде: fe80:0000:0000:0000:0202:b3ff:fe1e:8329

 

Числовая адресация удобна для машинной обработки таблиц маршрутов, но трудна для использования ее человеком. Запомнить наборы цифр гораздо сложнее, чем мнемонические осмысленные имена.

Для того чтобы решить эту проблему, были придуманы DNS (Domain Name System). Доменная система имен – это распределенная база данных, которая содержит информацию о компьютерах, включенных в сеть Internet. По запросу от какого-либо компьютера DNS по заданному доменному имени возвращает IP-адрес, и наоборот.

Доменный адрес – символьное имя, представляющее собой набор строк, разделенных точкой. Вначале идет имя компьютера, затем многоуровневое имя сети, в которой он находится (cu67.nntu.sci-nnov.ru – пример с доменом технического университета).

Каждое слово уровень в этой системе называется доменом. Полное доменное имя должно быть уникальным.

Система доменных адресов строится по иерархическому принципу. Однако иерархия эта не строгая. Пространство имен DNS имеет вид дерева доменов, с полномочиями, возрастающими по мере приближения к корню дерева (т.е. самое последнее слово – домен первого уровня, жестко выбираемый из определенного списка, предпоследнее – домен второго уровня, выбор слов ограничен менее жестко…).

Список доменов первого уровня жестко закреплен по географическому принципу (eu, ru, fr, cn, us, и т.д.) либо по смысловому содержанию:

.gov - государственные учереждения,

.mil - военные учереждения,

.com - коммерческие организации,

.net - поставщики сетевых услуг,

.org - безприбыльные организации,

.edu - учебные заведения;

 

Регистрациею доменов регулируют специальные организации, например, ICANN(Internet Corporation for Assigned Names and Numbers). Официальным регистратором доменов в нашей стране является РосНИИРОС, или RU-CENTER.

При работе с доменными именами компьютер в первую очередь обращается к известному ему доменному серверу, и выясняет IP адрес, соответствующий данному доменному имени. Дальнейшие операции по передаче данных идут с использованием полученного IP-адреса.

 

URL( Uniform Resource Locator).

Дальнейшим развитием идеи доменных имен стали URL. URL – это универсальная форма записи местоположения в сети (или локально) какого-либо ресурса (например, файла), а также определяющий протокол доступа к ресурсу.

Простой синтаксис URL:

protocol://host/path, где

protocol – тип протокола доступа (http, https, ftp, file, и т.п.)

host -имя машины, с которой необходимо установить соединение. Может быть в виде доменного имени сервера, его ip-адреса или другого идентификатора

path –локальный относительный путь к ресурсу непосредственно на сервере.

 

Например: http://www.microsoft.com/msdn

Зметим, что URL не является каким либо новым способом адресации компьютеров в сети, это просто удобная форма записи, обхединяющая с себе и адрес компьютера, и адрес ресурса на нем, и имя протокола доступа. URL получили широкое распространение с образованием Internet и World Wide Web.

 

Протоколы передачи данных.

При передаче данных будет задействовано несколько протоколов разного уровня. Например, при передаче HTTP-запроса, будет использоваться следующая схема.

 

Это означает, что HTTP-пакет будет передаваться внутри TCP –пакета, или нескольких TCP-пакетов, если HTTP-пакет не уберется в один пакет TCP. TCP пакеты, в свою очередь будет передавать их внутри IP-пакетов, а IP – внутри пакетов Ethernet.

Не надо думать, что все эти вложения будут упакованы в один гигантский Ethernet-пакет. Например, максимальный размер Ethernet-пакета равен 1522 байта (вместе со служебной информацией), а максимальный размер IP-пакета – 65535 байт. Поэтому один IP-пакет будет передаваться с помощью нескольких Ehternet-пакетов, которые на приемной стороне склеются и из результата склейки можно будет извлечь IP-пакет.

 

Протокол Ethernet имеет свою собственную систему адресации, эффективно работающую внутри небольшого сегмента сети. Ethernet не иммет алгоритмов маршрутизации, способных эффективно работать в глобальных сетях, поэтому при передаче данных через крупные и глобальные сети используется маршрутизация на IP-уровне. Ehternet же играет роль канального и физического протокола, доставляющего данные в пределах сегмента сети.

TCP/IP

Набор протоколов TCP/IP состоит из нескольких различных протоколов, каждый из которых выполняет в сети определенную задачу. Выделяют несколько основных протоколов два: TCP, UDP, IP, но кроме них также существует набор из множества дополнительных протоколов, поддерживающих работоспособность TCP/IP сетей.

 





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.216.79.60 (0.01 с.)