русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Адресация и создание сокета


Дата добавления: 2014-11-28; просмотров: 561; Нарушение авторских прав


Совокупная информация об адресе, порте программы-адресата (абонента), модели соединения, протоколе взаимодействия составляет так называемый сокет (конечная абонентская точка), формально представляющий собой структуру данных. Существует несколько видов сокетов:

· обобщенный сокет (generic socket), определяется в файле <sys/socket.h>:

struct sockaddr { u_char sa_family; /* Семейство адресов (домен) */ char sa_data[]; /* Адрес сокета */ };

· сокеты для связи через сеть, определяются в файле <netinet/in.h>

struct sockaddr_in { u_char sin_len; /* Длина поля sockaddr_in (для FreeBSD) */ u_char sin_family; /* Семейство адресов (домен) */ u_short sin_port; /* Номер порта */ struct in_addr sin_addr; /* IP-адрес */ char sin_zero[8]; /* Поле выравнивания */ };

где

struct in_addr { n_int32_t s_addr };

Создается сокет при помощи системного вызова socket()

#include <sys/socket.h> int socket (int domain, int type, int protocol);

· параметр domain - домен связи, в котором будет использоваться сокет (значение AF_INET - для домена Internet (соединение через сеть), AF_UNIX - домен, если процессы находятся на одном и том же компьютере);

· параметр type определяет тип создаваемого сокета (значение SOCK_STREAM - для режима соединений, SOCK_DGRAM - для режима дейтаграмм);

· Параметр protocol определяет используемый протокол (в случае protocol=0 по умолчанию для сокета типа SOCK_STREAM будет использовать протокол TCP, а для сокета типа SOCK_DGRAM - протокол UDP).

При программировании TCP-соединения должны быть созданы сокеты (системный вызов socket()) и в программе сервера, и в программе клиента, при этом в обеих программах сокеты связываются с адресом машины, на которую будет установлена программа сервера. Но, если в программе сервера для определения IP-адреса в структуре сокета может быть использована переменная INADDR_ANY, то в программе клиента для занесения в структуру сокета IP-адреса машины сервера необходимо использовать системный вызов inet_addr().



Сетевые вызовы inet_addr() и inet_ntoa() выполняют преобразования IP-адреса из формата текстовой строки "x.y.z.t" в структуру типа in_addr и обратно.

#include <arpa/inet.h> in_addr_t inet_addr (const char *ip_address); char * inet_ntoa(const struct in_addr in);

Для того чтобы процесс мог ссылаться на адрес своего компьютера, в файле <netinet/in.h> определена переменная INADDR_ANY, содержащая локальный адрес компьютера в формате in_addr_t.



<== предыдущая лекция | следующая лекция ==>
Работа с разделяемой памятью | Пересылка данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.