Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литвинов / Лабораторна робота 1.doc
Скачиваний:
26
Добавлен:
23.03.2015
Размер:
568.32 Кб
Скачать

2.Робота з сокетами в .Net

The .NET Framework network classes were created to provide easy interfaces to the native Winsock network API for programmers using the .NET programming languages. Now that you have seen how the Winsock API handles network programming, you’re ready to examine C#’s way of handling sockets. The following sections describe the C# network programming classes and how to use them in network programs.

Підтримку сокетів в .NET забезпечують класи в просторі імен System.Net.Sockets.

MulticastOption. Клас MulticastOption встановлює значення IP-адреси для приєднання до IP-групи або для виходу з неї.

NetworkStream. Клас NetwoгkStream реалізує базовий клас потоку, з якого дані відправляються і в якому вони виходять. Це абстракція високого рівня, яка представляє з'єднання з каналом зв'язку TCP/IP.

TcpClient. Клас TcpClient будується на класі Socket, щоб забезпечити TCP-обслуговування на вищому рівні. TcpClient надає декілька методів для відправки і отримання даних через мережу.

TcpListener. Цей клас також побудований на низькорівневому класі Socket. Його основне призначення - серверні додатки. Він чекає вхідні запити на з'єднання від клієнтів і повідомляє додаток про будь-які з'єднання.

UdpClient. UDP - це протокол, не організуючий з'єднання, отже, для реалізації UDP-обслуговування в .NET потрібна інша функціональність. Клас UdpClient призначений для реалізації UDP-обслуговування.

Socket. Останній клас в просторі імен System.Net.Sockets - це сам клас Socket. Він забезпечує базову функціональність додатку сокета.

Клас System.Net.Sockets.Socket

Клас Socket виконує важливу роль в мережевому програмуванні, забезпечуючи функціонування як клієнта, так і серверу. Головним чином, виклики методів цього класу виконують необхідні перевірки, пов'язані з безпекою, зокрема перевіряють дозволи системи безпеки, після чого вони переправляються до аналогів цих методів в Windows Sockets API.

Перш ніж звертатися наприклад використовування класу Socket, потрібно розглянути деякі важливі властивості класу System.Net.Sockets.Socket:

AddressFamily – дає сімейство адрес сокета.

Available – повертає об'єм доступних для читання даних.

Blocking – дає або встановлює значення, що показує, чи знаходиться сокет у блокованому режимі.

Connected – повертає значення, що інформує, чи сполучений сокет з віддаленим хостом.

LocalEndPoint – дає локальну кінцеву крапку.

ProtocolType – дає тип протоколу сокета.

RemoteEndPoint - повертає віддалену кінцеву точку сокета.

SocketType - дає тип сокета.

Важливі методи класу System.Net.Sockets.Socket:

Accept() – створює новий сокет для обробки вхідного запиту на з'єднання

Bind() пов'язує сокет з локальною кінцевою крапкою для очікування вхідних запитів на з'єднання.

Close() примушує сокет закритися

Connect() встановлює з'єднання з віддаленим хостом.

GetSocketOption() – повертає значення SocketOption

Listen() – поміщає сокет в режим прослуховування цей метод призначений тільки для серверних додатків.

Receive() одержує дані від'єднаного сокета.

Перевіряє статус одного або декількох сокетів.

Send() відправляє дані під’єднаному сокету.

Shutdown() забороняє операції відправки і приїому даних за допомогою сокета.