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

Реферат Програма Server Socket





//Перетворимо номер порту 80 в мережевій порядок байтів .sin_port=htons (80);

/* inet_addr перетворить рядок з IP адресою в long значення,

яке є IP адресою в мережевому порядку байтов._addr.S_un.S_addr визначає long значення в адресному об'єднанні */

sockAddr1.sin_addr.S_un.S_addr=inet_addr ( 127.0.0.1 );

//Встановлюємо адреса sockAddr2, встановлюючи значення кожної з 4 байтовой частини:

sockAddr2.sin_addr.S_un.S_un_b.s_b1=127; .sin_addr.S_un.S_un_b.s_b2=0; .sin_addr.S_un.S_un_b.s_b3=0;

sockAddr2.sin_addr.S_un.S_un_b.s_b4=1;

Функція inet_addr, у вищенаведеному прикладі, перетворює строкове значення IP адреси (записаного в «точковому» форматі) у відповідне 32-бітове значення в мережевому порядку байтів. Також існує функція inet_ntoa, яка робить теж саме, тільки навпаки.

connectconnect (SOCKET s, const struct sockaddr * name, int namelen);

Функція connect з'єднають socket з віддаленим socketом. Ця функція використовується на клієнтській стороні підключення, тому саме клієнт є ініціатором підключення.

Короткий опис параметрів цієї функції: - непідключений socket, який ти хотів би подключіть.- покажчик на структуру sockaddr, в якій міститься ім'я (адреса) віддаленого socketа, до якого необхідно подключітся.- розмір структури, в якій міститься ім'я.

Перший параметр - це клієнтський socket, що використовує з'єднання, наприклад, щойно створений socket за допомогою функції socket (). Решта два параметри, name і namelen, використовуються для адресації віддаленого socketа (socket сервера, який знаходиться в режимі прослуховування).

Цю функцію застосовують для з'єднання з сервером. Щоб звернутися до сервера, ти можеш використовувати структуру sockaddr_in, заповнивши її IP адресою і номером порту сервера. Ти можеш поцікавитися, як отримати IP адреса сервера, наприклад, vr-online lt; # justify gt; II Практична частина


. 1 Опис і лістинг програми Server Socket


# include lt; iostream gt;

# include lt; windows.h gt;

# pragma comment (lib, ws2_32.lib )//підключення бібліотеки winsock2main (void) {namespace std; PCName [30], ClientName [30], Message [200]; WSADat;// Властивості WinSock (результат функції WSAStartup)

sockaddr_in sin;// Властивості (адреса) створюваного сокетаSock, Client;// Серверний і клієнтський сокети (0x0202, amp; WSADat);// Ініціалізація WinSock

//0x0202 - версія WinSock. Може бути 1.0, 1.1, 2.0, 2.2

//WSADat - структура, куди будуть занесені рез. ініціалізації (PCName, 30);// Отримання імені поточного ПК

sin.sin_family=AF_INET;// Тип адреси

sin.sin_addr.s_addr=0;// IP-адресу сервера (порист створенні сервера можна 0) .sin_port=htons (2803);// Номер порту сервера

Sock=socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);// Створення сокета

bind (Sock, (sockaddr *) amp; sin, sizeof (sin));// Зв'язування створеного сокета з адресою sin

Рис.3


//***** Очікування клієнта lt; lt; Wait of client ... lt; lt; endl;

listen (Sock, SOMAXCONN);// Прослуховування сокета сервером (для підключення клієнта)

Client=accept (Sock, (sockaddr *) amp; sin, 0);// Очікування клієнта

recv (Client, ClientName, 30, 0);// Отримання імені комп'ютера клієнта (Client, PCName, strlen (PCName) + 1, 0);// Відправка імені цього комп'ютера (сервера)


Рис.4 lt; lt; Client ( lt; lt; ClientName lt; lt; ) has connected! lt; lt; endl;

//***** МенюMenu; { lt; lt; 1. Send message; lt; lt; endl; lt; lt; 2. Get Message; lt; lt; endl; lt; lt; 3. Quit; lt; lt; endl; lt; lt; Make your selection: raquo ;; cin gt; gt; Menu;

switch (Menu) {1:

Рис.4


//Відправка повідомлення клієнту

cout lt; lt; Enter message: raquo ;; cin.get () ;. getline (Message, 200); (send (Client, Message, strlen (Message) + 1, 0)!=SOCKET_ERROR) cout lt; lt; Sent! n raquo ;; cout lt; lt; Error of sending! n raquo ;;

break; 2:

Рис.5


//Прийом повідомлення від клієнта (recv (Client, Message, 200, 0)!=SOCKET_ERROR) { lt; lt; Message lt; lt; endl; .get ();

} cout lt; lt; Error of getting! n raquo ;;;

};

lt; lt; endl;

} while (Menu!=3);

//Закриття сокетів і закінчення ...


Назад | сторінка 7 з 8 | Наступна сторінка





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

  • Реферат на тему: Реалізація гри pong на мові Java за допомогою технології Socket
  • Реферат на тему: Архітектура системи на базі процесора Pentium (Socket 7)
  • Реферат на тему: Встановлення та конфігурування web-сервера на OC ALT Linux Server 5
  • Реферат на тему: Remote Access Server, віддалений доступ модему до сервера
  • Реферат на тему: Комп'ютерна мережа з використанням файл-сервера