Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація мережі в операційній системі Linux

Реферат Реалізація мережі в операційній системі Linux





# if defined (CONFIG_WAN_ROUTER) | | defined (CONFIG_WAN_ROUTER_MODULE)

struct wanpipe_opt * af_wanpipe;

# endif

} protinfo;

/* This part is used for the timeout functions. */p> struct timer_list timer;/* This is the sock cleanup timer. */p> struct timeval stamp;

/* Identd and reporting IO signals */p> struct socket * socket;

/* RPC and TUX layer private data */

void * user_data;

/* Callbacks */

void (* state_change) (struct sock * Sk);

void (* data_ready) (struct sock * Sk, int bytes);

void (* write_space) (struct sock * Sk);

void (* error_report) (struct sock * Sk);

int (* backlog_rcv) (struct sock * sk,

struct sk_buff * skb);

void (* destruct) (struct sock * sk);

};

Ця структура дуже широко використовується і має багато hacks залежних від конфігурації як бачимо для кожного протоколу тут знайдеться містечко

Сокети проходять через процес маршрутизації тільки один раз для кожного маршруту. Вони містять покажчик на маршрут struct sock-> Dst_cache * і викликають ip_route_connect (net/route.h) для знаходження маршруту інформація записується в dst_cache і сокет далі використовує її не повторюючи операції пошуку маршруту поки не трапиться щось незвичайне в цьому і є сенс connect

Встановлення з'єднання

Розглянемо стандартний приклад

/* look up host */

server = gethostbyname (SERVER_NAME);

/* get socket */

sockfd = socket (AF_INET, SOCK_STREAM, 0);

/* set up address */

address.sin_family = AF_INET;

address.sin_port = htons (PORT_NUM);

memcpy (& address.sin_addr, server-> h_addr, server-> h_length);

/* connect to server */

connect (sockfd, & address, sizeof (address));

socket створює обєкт сокета певного типу і ініціалізує його також робить дефолтівських черги (Incoming, outgoing, error, backlog) і заголовок TCP

connect визначає маршрути викликаючи протокольно залежні функції (tcp_v4_connect (), udp_connect ()) net/socket.c

asmlinkage long sys_connect (int fd, struct sockaddr * uservaddr, int addrlen)

{

................................

err = sock-> ops-> connect (sock, (Struct sockaddr *) address, addrlen,

sock-> file-> f_flags);

..........................

}

int sock_create (int family, int type, int protocol, struct socket ** res)

{

.....................................

// Cоздан протокольно залежний сокет!

// --------------------------------------

if ((i = net_families [family] -> create (sock, protocol)) <0)

{

sock_release (sock);

goto out;

}

.................

}

Функції p> Socket

Перевіряємо помилки

Виділяємо пам'ять

Ложим сокет до списку inode

Встановлюємо покажчи...


Назад | сторінка 6 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Програма Server Socket
  • Реферат на тему: Реалізація гри pong на мові Java за допомогою технології Socket
  • Реферат на тему: Архітектура системи на базі процесора Pentium (Socket 7)
  • Реферат на тему: Встановлення та конфігурування web-сервера на OC ALT Linux Server 5
  • Реферат на тему: Встановлення та налаштування Windows Server и UserGate 4.0