Структура и основные форматы буфера обмена Windows.

Буфер обмена состоит:

-буфер

-утилита просмотра Clipbrd.exe

Буфер обеспечивает временное хранение информации в форме, позволяющей осуществлять обмен данными м/у приложениями.

Буфер исп-ся для временного хранения инф-ции.

Недостатки буфера:

-есть только 1 буфер

-все данные общедоступны

-все данные записанные в него, м.б. разрушены.

Перед тем как записать данные в буфер – он очищается.

В WinUser.hописаны форматы:

1.Текстовые:

-CF_TEXT

-CF_OEMTEXT

-CF_UNICODETEXT

2.Изображения:

-CF_BITMAP

-CF_DIB

-CF_TIFF

-CF_METAFILEPICT

-CF_ENHMETAFILE

-CF_PALETTE

-CF_PENDATA

3.Звуковые:

-CF_WAVE

-CF_RIFF

4.Эл.таблицы:

-CF_DIF

-CF_SYLK

Записывать в буфер может только прога-владелец, считывать может любая.

Существуют также спец. форматы:

-CF_DSPTEXT

-CF_DSPBITMAP

-CF_DSPMETAFILE

-CF_DSPPENHMETAFILE

Возможно зарегистрировать свой собственный формат.

Основные функции API для работы буфером обмена Windows.

Записывать данные в буфер может только прога-владелец.

Считывать может любая.

EmptyClipboard() – стать владельцем

OpenClipboard()

SetClipboardData()

GetClipboardData() – чтение из буфера

IsClipboardFormatAvailable(format) – лежат ли данные такого формата.

EnumClipboardFormats() – возвращает первый текущий формат.

Ограничения на операции с буфером:

1.EmptyClipboard() – очистить и стать владельцем

2.Только вызвавший EmptyClipboardимеет право писать в буфер

3.Передавать данные нужно в течении 1 операции.

4.Одновременно может нах-ся только по 1 элементу данных каждого типа.

Основы механизма связи между приложениями посредством каналов. Виды каналов. Основные функции API для создания и работы с каналами.

Канал – участок совместно используемой памяти, где процессы оставляют сообщения и данные друг для друга. Работа с каналами – аналогична работе с файлами.

Формально клиент-серверная архитектура, но права одинаковые. Сервер – тот, кто создает канал.

Виды каналов:

-входные, выходные, дуплексные

-байтовые и каналы сообщений

-блокируемые и неблокируемые

-именованные и анонимные

В 98й – именованные отсутствуют.

ReadFile() –чтение

WriteFile() – запись

CreatePipe(), CreateNamedPipe()

CreateFile()

Основы использования сетевых технологий для связи между приложения. Синхронный и асинхронный интерфейсы API-функций WinSock.

Основы использования сетевых технологий для связи между приложениями. Виды сетевых протоколов. Интерфейсы API-функций WinSock.

Протоколы нижнего уровня – передачу информации осуществляют с помощью сложных структур и пакетов. СтекTCP/IP. IP – Internet Protocol.

TCP – последовательный, 2 направленный протокол, предусматривает установку соединений.

UDP– передает пакеты, без установления соединения.

Протоколы высокого уровня – выполняют роль различных сетевых сервисов: SMTP, POP3, FTP, HTTP.

Большинство программ для работы с Internet, используют сокеты.

BercleySocketsStandart – набор ф-ий работы с сокетами.

WinSock – интерфейс APIф-ий для работы с сокетами, описаны в wsock32.dll.

Типы ф-ийWinSock:

1.Расширения Windowsдля ф-ийBercley

2.Ф-ии Bercley

3.Информационные ф-ии

Версии WinSock:

1.1 – поддержка только TCP/IP

2.0 – еще и IPx, SPx, AppleTalk.

2.0 содержится в ws2_32.dll

Синхронный интерфейс API-функций WinSock.

WinSock – интерфейс APIф-ий для работы с сокетами. Описаны в wsock32.dll.

Синхронный интерфейс – ф-ии Беркли.:

accept() – регистрирует подключение к заданному сокету.

bind() – назначает сокету лок.адрес.

closesocket() – закрываетсокет.

connect () – соединяет гнездо с узлом.

ioctlsocket() – читает или устанавливает пар-ры режима работы сокета.

listen() – режим прослушивания.

recv() – читает данные из сокета.

select() – определяет статус сокета(-ов).

send() – посылает данные в сокет.

sendto() – посылает данные по адресу.

setsockopt() – установка опций.

shutdown() – запрет приема/передачи ч/з сокет.

socket() – создает сокет.

Информационные ф-ии.

1.Преобразование данных

htonl() – 32разрядное в значение формата TCP/IP

htons() – 16разрядное в значение формата TCP/IP

ntohl() – значение формата TCP/IP в 32разрядное

ntohs() –значение формата TCP/IPв 16разрядное

inet_addr – строка IP адреса с точками в DWORD

inet_ntea –сетевой адрес (в виде длинного целого без знака) в IPадрес с точками

2.РаботасБД.

gethostbyaddr()

gethostbyname()

getprotobyname() – инфа о протоколе хоста

getservbyport() – инфа о сервисе по порту

getsockname() – имя сокета

Наши рекомендации