Курсовая работа: Розвиток сучасних структур програмного забезпечення
struct sockaddr_in{
short sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
Параметри:
sin_family
Визначає сімейство адрес. Повинен бути AF_INET.
sin_port
Визначає порт IP.
sin_addr
Визначає адресу IP.
sin_zero
Параметр не заповнюється. Визначає розмір структури SOCKADDR.
Після заповнення структури необхідно асоціювати її з сокетом сервера, який повинен приймати через нього дані.
intbind(SOCKETs,const struct sockaddr*name,intnamelen);Параметр s (in) - сокет, який асоціюється зі структурою.
Параметр name (in) - сама структура, з якою асоціюється сонет.
Параметр namelen (in) - розмір попереднього параметра в байтах.
Функція в разі успіху повертає нуль. В іншому разі – код помилки.
Далі сервер має прослуховувати порт. Здійснюється це за допомогою наступної функції:
intlisten(SOCKETs,intbacklog);Параметр s (in) – сокет, який переводиться в режим прослуховування.
Параметр backlog (in) – максимальна кількість підключень до сервера.
Функція в разі успіху повертає нуль. В іншому разі – код помилки.
Після того, як знайдеться клієнт, який хоче підключитись до сервера, сервер приймає підключення. Здійснюється це наступною функцією:
SOCKETaccept(SOCKETs,struct sockaddr*addr,int*addrlen);Параметр s (in) – сокет, який приймає підключення.
Інші два параметри – вихідні і нас не дуже стосуються. Їх можна виставити в NULL.
Функція повертає дескриптор сокету, що прийняв підключення. В разі невдачі повертає код помилки.
Якщо клієнт підключився до сервера, то сервер може отримувати від клієнта дані або інструкції для дій. Для цього існує наступна функція:
intrecv(SOCKETs,char*buf,intlen,intflags);