int af, //[in] формат адреса
int type, //[in] тип сокета
int prot //[in] протокол
);
- параметр af для стека TCP/IP принимает значение AF_INET;
- параметр type может принимать два значения:
· SOCK_DGRAM – сокет, ориентированный на сообщения(UDP);
· SOCK_STREEM – сокет ориентированный на поток;
· старший номер версии;
- параметр prot определяет протокол транспортного уровня:
· для TCP/IP можно указать NULL
Интерфейс Nimed Pipe.
Именованным каналом называется объект ядра операционной системы, который обеспечивает обмен данными между процессами, выполняющимися на компьютерах в одной локальной сети. Процесс, создающий именованный канал, называется сервером именованного канала. Процессы, которые связываются с именованным каналом, называются клиентами именованного канала. Любой именованный канал идентифицируется своим именем, которое задается при создании канала.
Именованные каналы бывают: дуплексные (позволяющие передавать данные в обе стороны) и полудуплексны е (позволяющие передавать данные только в одну сторону). Передача данных в именованном канале может осуществляться как потоком, так и сообщениями. Обмен данными в канале может быть синхронным и асинхронным.
|
|
Для использования функций интерфейса Named Pipe в программе на языке C++ необходимо включить в ее текст заголовочный файл Windows.h. Сами функции интерфейса располагаются в библиотеке KERNEL32.DLL ядра операционной системы.
Все функции Named Pipe API можно разбить на три группы: функции управления каналом (создать канал, соединить сервер с каналом, открыть канал, получить информацию об именованном канале, получить состояние канала, изменить характеристики канала); функции обмена данными (писать в канал, читать из канала, копировать данные канала) и функции для работы с транзакциями.
Наименование функции | Назначение |
CallNamedPipe | Выполнить одну транзакцию |
ConnectNamedPipe | Соединить сервер с каналом |
CreateFile | Открыть канал |
CreateNamedPipe | Создать именованный канал |
DisconnectNamedPipe | Закончить обмен данными |
GetNamedPipeHandleState | Получить состояние канала |
GetNamedPipeInfo | Получить информацию об именованном канале |
PeekNamedPipe | Копировать данные канала |
ReadFile | Читать данные из канала |
SetNamedPipeHandleState | Изменить характеристики канала |
TrasactNamedPipe | Писать и читать данные канала |
WaitNamedPipe | Определить доступность канала |
WriteFile | Писать данные в канал |