Лекция: 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.

еще рефераты
Еще работы по информатике