Э. Джонс, Д. Оланд
Программирование в сетях
Microsoft®
W i n d o w s
i !»э :
МАСТЕР-КЛАСС
« . Р У С С К А Я |
Р Е Д А К Ц И Я |
о Москва • Санкт-Петербург • ХарЩсов • Минск 2002
|,К |
004.43 |
Ж 32.973.26-018 |
|
иконе Э., Оланд Дж. |
|
i 0 |
Программирование в сетях Microsoft Windows. Мастер-класс. / Пер. с англ. — |
Спб.: Питер, М: Издательско-торговый дом «Русская Редакция», 2002. — 608 стр.: ил. |
|
ISBN 5-318-00725-2 |
|
ISBN 5-7502-0148-1 |
|
Книга знакомит читателя с многообразием сетевых функций ОС семей- |
|
ства Windows. Обсуждается разработка сетевых приложений на платформе |
|
Win32 с использованием интерфейсов программирования NetBIOS и Winsock, |
|
а также распространенных протоколов. На конкретных примерах рассмот- |
|
рены клиент-серверная модель; установка соединения и передача данных; |
|
регистрация и разрешение имен, в том числе применительно к Windows 2000 |
|
и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ. |
|
В приложениях содержится справочник команд NetBIOS (с указанием вход- |
|
ных и выходных параметров), сведения о новых функциях IP Helper, а так- |
|
же справочник кодов ошибок Winsock. |
|
Адресована как профессиональным программистам, так и новичкам, для |
|
которых станет удобным справочником и исчерпывающим пособием по |
|
использованию сетевых функций Windows |
|
Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый |
|
компакт-диск содержит примеры программ. |
|
УДК 004.43 |
|
ББК 32.973.26-018 |
|
Подготовлено к изданию по лицензионному договору с Microsoft Corporation, Редмонд, Ва- |
|
шингтон, США |
|
Intel — охраняемый товарный знак компании Intel Corporation Active Directory, ActiveX, |
|
Authenticode, BackOffice, BizTalk, JScnpt, Microsoft, Microsoft Press, MSDN, MSN, NetMeeting, |
|
Outlook, Visual Basic, Win32, Windows и Windows NT являются товарными знаками или охра- |
|
няемыми товарными знаками корпорации Microsoft в США и/или других странах Все дру- |
|
гие товарные знаки являются собственностью соответствующих фирм |
|
Все названия компаний, организаций и продуктов, а также имена лиц и события, ис- |
|
пользуемые в примерах, вымышлены и не имеют никакого отношения к реальным компани- |
|
ям, организациям, продуктам, событиям и лицам, если особо не указано иное |
г
© |
Оригинальное издание на английском |
||
1BN 0 — 7356 — 0560 — 2 (англ.) |
языке, Microsoft Corporation, 2000 |
||
IBN 5-318-00725 |
-2 |
© |
Перевод на русский язык, Microsoft |
‘ 5-7502-0148 |
-1 |
Corporation, 2001 |
Оглавление
Введение |
XII |
||
Ч А С Т Ь |
I. УСТАРЕВШИЕ СЕТЕВЫЕ API |
1 |
|
ГЛАВА 1. |
Интерфейс NetBIOS |
2 |
|
Интерфейс Microsoft NetBIOS |
3 |
||
Номера LANA |
4 |
||
Имена NetBIOS |
5 |
||
Особенности NetBIOS |
8 |
||
Основы программирования NetBIOS |
9 |
||
Синхронный и асинхронный вызов |
11 |
||
Типичные процедуры NetBIOS |
11 |
||
Сервер сеансов: модель асинхронного обратного вызова |
19 |
||
Сервер сеансов: модель асинхронных событий |
24 |
||
Клиент сеанса NetBIOS |
30 |
||
Дейтаграммные операции |
34 |
||
Дополнительные команды NetBIOS |
48 |
||
Проверка состояния адаптера (команда NCBASTAT) |
49 |
||
Команда поиска имени (NCBFINDNAME) |
51 |
||
Сопоставление протоколов номерам LANA |
51 |
||
Рекомендации по выбору платформ |
52 |
||
Платформа Windows СЕ |
52 |
||
Платформа Windows 9x |
52 |
||
Для любых платформ |
53 |
||
Резюме |
53 |
||
ГЛАВА 2. |
Перенаправитель |
54 |
|
Универсальные правила именования |
55 |
||
Поставщик нескольких UNC |
55 |
||
Компоненты сетевого доступа |
56 |
||
Перенаправитель |
57 |
||
Протокол SMB |
57 |
||
Безопасность |
59 |
||
Дескрипторы безопасности |
59 |
||
Маркеры доступа |
61 |
||
Сетевая безопасность |
61 |
||
Реквизиты сеанса |
61 |
||
Пример |
62 |
||
Резюме |
63 |
||
ГЛАВА 3. |
Почтовые ящики |
64 |
|
Подробности внедрения почтовых ящиков |
64 |
||
Имена почтовых ящиков |
65 |
||
)Л * |
Размеры сообщений |
65 |
|
0С| |
Компиляция приложения |
67 |
|
Коды ошибок |
67 |
Оглавление |
||
)бщие сведения об архитектуре клиент-сервер |
67 |
|
Сервер почтовых ящиков |
67 |
|
Клиент почтовых ящиков |
70 |
|
1,ополнительные API-функции почтовых ящиков |
72 |
|
Тлатформа и производит ельность |
7 3 |
|
Правила именования < 8 3 > |
7 3 |
|
Неспособность отменить блокирующие запросы ввода-вывода |
74 |
|
Утечки памяти |
76 |
|
‘езюме |
77 |
|
«ЛАВА 4. Именованные каналы |
78 |
|
[етали реализации именованных каналов |
79 |
|
Правила именования каналов |
79 |
|
Режимы побайтовый и сообщений |
79 |
|
Компиляция приложений |
79 |
|
Коды ошибок |
80 |
|
1ростой сервер и клиент |
80 |
|
Детали реализации сервера |
80 |
|
Усовершенствованный сервер каналов |
87 |
|
Детали реализации клиента |
95 |
|
1,ругиеAPI-вызовы |
98 |
|
1латформа и производительность |
101 |
|
‘езюме |
101 |
|
Ч А С Т Ь |
II. ИНТЕРФЕЙС ПРИКЛАДНОГО |
|
1РОГРАММИРОВАНИЯ WINSOCK |
103 |
|
«ЛАВА 5. |
Сетевыепротоколы |
104 |
Характеристики протоколов |
104 |
|
Протокол, ориентированный на передачу сообщений |
104 |
|
Обмен данными, с соединением и без него |
106 |
|
Надежность и порядок доставки сообщений |
1 Об |
|
Сорректное завершение работы |
107 |
|
Широковещание данных |
108 |
|
Многоадресное вещание |
108 |
|
Качество обслуживания |
108 |
|
Фрагментарные сообщения |
109 |
|
Маршрутизация |
109 |
|
Другие характеристики |
109 |
|
Тоддерживаемые протоколы |
110 |
|
Сетевые протоколы, поддерживаемые Win32 |
110 |
|
Сетевые протоколы в Windows СЕ |
112 |
|
Информация о протоколе |
112 |
|
Зокеты Windows |
116 |
|
Простые сокеты |
118 |
|
Информация о платформах |
118 |
|
Winsock и модельOSI |
119 |
|
Зыбор соответствующего протокола |
119 |
|
5езюме |
120 |
Оглавление |
VII |
ГЛАВА 6. Семейства адресов и разрешение имен |
121 |
Протокол IP |
121 |
Протокол TCP |
121 |
Протокол UDP |
122 |
Адресация |
122 |
Порядок байт |
124 |
Создание сокета |
125 |
Разрешениеимен |
125 |
Инфракрасные сокеты |
128 |
Адресация |
128 |
Разрешение имен |
128 |
Нумерация IrDA-устройств |
129 |
Опрос IAS |
131 |
Создание сокета |
133 |
Параметры сокета |
133 |
Протоколы IPX/SPX |
133 |
Адресация |
133 |
Создание сокета |
134 |
Разрешение имен |
137 |
Протоколы NetBIOS |
137 |
Адресация |
137 |
Создание сокета |
139 |
Протокол AppleTalk |
140 |
Адресация |
140 |
Создание сокета |
148 |
Протокол ATM |
148 |
Адресация |
149 |
Создание сокета |
153 |
Привязка сокета к SAP |
154 |
Разрешениеимен |
155 |
Дополнительные функции Winsock 2 |
155 |
Резюме |
156 |
ГЛАВА 7. Основы Winsock |
157 |
ИнициализацияWinsock |
157 |
Проверка и обработка ошибок |
159 |
Протоколы с установлением соединения |
160 |
Серверные API-функции |
1б0 |
API-функции клиента |
164 |
Передача данных |
168 |
Потоковые протоколы |
173 |
Завершение сеанса |
175 |
Пример |
176 |
Протоколы, не требующие соединения |
185 |
Приемник |
185 |
Отправитель |
187 |
Протоколы, ориентированные на передачу сообщений |
188 |
Освобождение ресурсов сокета |
189 |
Пример |
189 |
ЛИ Оглавление
1,ополнительные функции API |
197 |
|
Функция |
getpeername |
197 |
Функция |
getsockname |
198 |
Функция |
WSADuphcateSocket |
198 |
Функция |
TransmitFile |
199 |
пя платформы Windows СЕ |
200 |
|
1ругие семейства адресов |
201 |
|
Протокол AppleTalk |
201 |
|
Инфракрасные сокеты |
202 |
|
Интерфейс с NetBIOS |
202 |
|
Протокол IPX/SPX |
203 |
|
Протокол ATM |
204 |
|
‘езюме |
204 |
«ЛАВА 8. Ввод-вывод в Winsock |
205 |
|
‘ежимы работы сокетов |
206 |
|
Блокирующий режим |
206 |
|
Неблокирующий режим |
208 |
|
Додели ввода-вывода сокетов |
209 |
|
Модель select |
209 |
|
Модель WSAAsyncSelect |
213 |
|
Модель WSAEventSelect |
217 |
|
Модель перекрытого ввода-вывода |
223 |
|
Модель портов завершения |
234 |
|
‘равнение моделей ввода-вывода |
243 |
|
Клиент |
243 |
|
Сервер |
243 |
|
5езюме |
243 |
|
«ЛАВА 9. Параметры сокета и команды управления |
||
SBOflOM-ВЫВОДОМ |
245 |
|
Тараметры сокета |
245 |
|
Уровень |
SOLJOCKET |
246 |
Уровень параметров SOLAPPLETALK |
255 |
|
Уровень параметров SOL IRLMP |
258 |
|
Уровень |
параметров IPPROTOJP |
262 |
Уровень |
параметров IPPROTOTCP |
267 |
Уровень параметров NSPROTO IPX |
268 |
|
Функции Ioctlsocket и WSAloctl |
272 |
|
Стандартные ioctl-команды |
273 |
|
Другие ioctl-команды |
274 |
|
Ioctl-команды Secure Socket Layer |
282 |
|
Ioctl-команды для ATM |
283 |
|
Резюме |
285 |
|
«ЛАВА 10. Регистрация и разрешение имен |
286 |
|
введение |
286 |
|
Модели пространства имен |
287 |
|
Перечень пространств имен |
287 |
|
Регистрация службы |
289 |
Определение класса службы
Регистрация службы Запрос к службе
Создание запроса Запрос к DNS
Резюме
ГЛАВА 11. Многоадресная рассылка
Семантика многоадресной рассылки Свойства многоадресной рассылки
Многоадресная рассылка в сетях IP Протокол IGMP
Листовые узлы IP Реализация 1Р-рассылки
Многоадресная рассылка в сетях ATM Листовые узлы ATM
Корневые узлы ATM
Многоадресная рассылка с использованием Winsock Рассылка средствами Winsock 1
Рассылка средствами Winsock 2 Общие параметры Winsock
Ограничение многоадресной рассылки при удаленном доступе Резюме
ГЛАВА 12. Качество обслуживания
Введение
Протокол RSVP Сетевые компоненты
Компоненты приложения Компоненты политики безопасности
QoS и Winsock
Структуры QoS
Функции, вызывающие QoS Завершение QoS
Объекты, относящиеся к поставщику Программирование QoS
RSVP и типы сокетов Уведомления QoS
Шаблоны QoS Примеры
Одноадресный TCP
Одноадресный UDP
Многоадресный UDP
ATM и QoS Резюме
ГЛАВА 13. Простые сокеты
Создание простого сокета
Протокол ICMP Пример Ping
289
293
299
301
304
307
308
308
311
зп
312
313
314
314
315
315
316
316
323
340
342
342
343
343
344
344
346
347
348
349
352
356
356
365
366
368
371
373
373
394
395
396
397
398
398
399
401
Оглавление |
|
Программа Traceroute |
411 |
Протокол IGMP |
412 |
Использование IPJiDRINCL |
414 |
Резюме |
424 |
«ЛАВА 14. Интерфейс Winsock 2 SPI |
425 |
Основы SPI |
426 |
Соглашения SPI об именах |
426 |
Соответствие функций Winsock 2 API и SPI |
426 |
Поставщики транспортной службы |
427 |
Функция WSPStartup |
428 |
Описатели сокетов |
433 |
Поддержка модели ввода-вывода Winsock |
435 |
Модель select |
437 |
Расширенные функции |
446 |
Установка поставщиков транспортной службы |
447 |
Тоставщики службы пространства имен |
453 |
Установка поставщика пространства имен |
453 |
Реализация пространства имен |
455 |
Пример |
461 |
Отладочные функции отслеживания Winsock 2 SPI |
466 |
Резюме |
467 |
«ЛАВА 15. Элемент управления Winsock |
468 |
Свойства |
468 |
Методы |
470 |
События |
471 |
Пример (UDP-приложение) |
472 |
Пересылка UDP-сообщений |
476 |
Прием UDP-сообщений |
477 |
Получение информации от элемента Winsock |
478 |
Запуск UDP-приложения |
478 |
Состояние UDP-сокетов |
479 |
11ример (TCP-приложение) |
480 |
СР-сервер |
487 |
TCP-клиент |
489 |
Получение информации о состоянии элемента |
|
управления Winsock |
490 |
Запуск TCP-приложения |
490 |
Состояние ТСР-сокетов |
491 |
Ограничения |
491 |
Гипичные ошибки |
493 |
Ошибка Local address in use |
493 |
Ошибка Invalid Operation at Current State |
493 |
Элемент управления Windows СЕ Winsock |
494 |
Пример |
494 |
Проблема с элементом управления |
|
VBCE Winsock |
499 |
Резюме |
499 |
Оглавление |
XI |
||
Ч А С Т Ь |
I I I . |
СЛУЖБА УДАЛЕННОГО |
|
ДОСТУПА (RAS) |
500 |
||
ГЛАВА 16. |
Клиент службы RAS |
501 |
|
Компиляция и компоновка |
502 |
||
Структуры данных и вопросы совместимости платформ |
503 |
||
Обновление DUN 1.3 и Windows 95 |
503 |
||
ФункцияRasDial |
503 |
||
Синхронный режим |
506 |
||
Асинхронный режим |
507 |
||
Уведомление о состоянии |
512 |
||
Завершение соединения |
513 |
||
Телефонный справочник |
514 |
||
Добавление записей в телефонный справочник |
522 |
||
Переименование записи телефонного справочника |
525 |
||
Удаление записей из телефонного справочника |
525 |
||
Перечисление записей телефонного справочника |
526 |
||
Управление реквизитами пользователя |
527 |
||
Многоканальные подзаписи телефонного справочника |
529 |
||
Управление соединением |
530 |
||
Резюме |
534 |
||
Приложение А. |
Перечень команд NetBIOS |
535 |
|
Приложение В. |
Вспомогательные функции IP |
549 |
|
Возможности утилиты Ipconfig |
|||
Освобождение и обновление IP-адресов |
5 |
||
Изменение IP-адреса |
|||
Возможности утилиты Netstat |
|||
Получение таблицы TCP-соединений |
5 |
||
Получение таблицы прослушиваемых портов UDP |
55 |
||
Получение статистики о протоколе IP |
5 |
||
Возможности утилиты Route |
|||
Получение таблицы маршрутов |
|||
Добавление маршрута |
|||
Удаление маршрута |
|||
Утилита ARP |
|||
Добавление записи ARP |
|||
Удаление записи ARP |
|||
Приложение С. |
Коды ошибок Winsock |
568 |
|
От авторов |
575 |
||
Предметный указатель |
576 |
if
-Г
-д
О книге «Программирование в сетях Microsoft Windows»
Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе Win32 с использованием интерфейсов программирования NetBIOS и Winsock, а также распространенных протоколов. На конкретных примерах рассмот- рены клиент-серверная модель; установка соединения и передача данных; регистрация и разрешение имен, в том числе применительно к Windows 2000 и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ. В приложениях содержится справочник команд NetBIOS (с указанием вход- ных и выходных параметров), сведения о новых функциях IP Helper, а так- же справочник кодов ошибок Winsock. Адресована как профессиональным программистам, так и новичкам, для которых станет удобным справочником и исчерпывающим пособием по использованию сетевых функций Windows Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый компакт-диск содержит примеры программ.
Произведение было опубликовано в 2002 году издательством Русская Редакция. На нашем сайте можно скачать бесплатно книгу «Программирование в сетях Microsoft Windows» в формате pdf или читать онлайн. Рейтинг книги составляет 5 из 5. Здесь так же можно перед прочтением обратиться к отзывам читателей, уже знакомых с книгой, и узнать их мнение. В интернет-магазине нашего партнера вы можете купить и прочитать книгу в бумажном варианте.
Подборка по базе: Информационные системы и программирование 3 семестр.pdf@test_syn, 7.Алгоритмизация и программирование.docx, Практическая работа №20. Программирование в SQL92022).docx, Лабораторная работа введение в программирование.docx, Вопросы по пайтон программирование.docx, лекция 11. Программирование.docx, Курсовая работа программирование.odt, Мат. программирование. Пениа Г.Г..doc, Волк В. — Базы данных. Проектирование, программирование, управле, Объектно-ориентированное программирование.pdf
A n t h o n y J o n e s
J i m O h i u n d
N
e
t
w
o
r
k
P
r
o
g
r
a
m
m
l
n
f
o
r
M i c r o s o f t ®
W
i
n
d
o
w
s
M i c r o s o f t P r e s s
Э. Джонс, Д. Оланд
Программирование
в сетях
Microsoft®
W i n d o w s
i ! » э :
МАСТЕР-КЛАСС
« . Р У С С К А Я РЕДАКЦИЯ
о Москва • Санкт-Петербург • ХарЩсов • Минск
2002
|,К 004.43
Ж 32.973.26-018
иконе Э., Оланд Д ж .
i 0 Программирование в сетях Microsoft Windows. Мастер-класс. / Пер. с англ. —
Спб.: Питер, М: Издательско-торговый дом «Русская Редакция», 2002. — 608 стр.: ил.
ISBN 5 — 3 1 8 — 0 0 7 2 5 — 2
ISBN 5 — 7 5 0 2 — 0 1 4 8 — 1
Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе
Win32 с использованием интерфейсов программирования NetBIOS и Winsock,
а также распространенных протоколов. На конкретных примерах рассмот- рены клиент-серверная модель; установка соединения и передача данных;
регистрация и разрешение имен, в том числе применительно к Windows 2000
и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ.
В приложениях содержится справочник команд NetBIOS (с указанием вход- ных и выходных параметров), сведения о новых функциях IP Helper, а так- же справочник кодов ошибок Winsock.
Адресована как профессиональным программистам, так и новичкам, для которых станет удобным справочником и исчерпывающим пособием по использованию сетевых функций Windows
Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый компакт-диск содержит примеры программ.
УДК 004.43
ББК 32.973.26-018
Подготовлено к изданию по лицензионному договору с Microsoft Corporation, Редмонд, Ва- шингтон, США
Intel — охраняемый товарный знак компании Intel Corporation Active Directory, ActiveX,
Authenticode, BackOffice, BizTalk, JScnpt, Microsoft, Microsoft Press, MSDN, MSN, NetMeeting,
Outlook, Visual Basic, Win32, Windows и Windows NT являются товарными знаками или охра- няемыми товарными знаками корпорации Microsoft в США и/или других странах Все дру- гие товарные знаки являются собственностью соответствующих фирм
Все названия компаний, организаций и продуктов, а также имена лиц и события, ис- пользуемые в примерах, вымышлены и не имеют никакого отношения к реальным компани- ям, организациям, продуктам, событиям и лицам, если особо не указано иное
г
© Оригинальное издание на английском
1BN 0 — 7 3 5 6 — 0 5 6 0 — 2 (англ.) языке, Microsoft Corporation, 2000
IBN 5 — 3 1 8 — 0 0 7 2 5 — 2 © Перевод на русский язык, Microsoft
‘ 5 — 7 5 0 2 — 0 1 4 8 — 1 Corporation, 2001
Оглавление
Введение XII
Ч А С Т Ь I. УСТАРЕВШИЕ СЕТЕВЫЕ API 1
ГЛАВА 1. Интерфейс NetBIOS 2
Интерфейс Microsoft NetBIOS 3
Номера LANA 4
Имена NetBIOS 5
Особенности NetBIOS 8
Основы программирования NetBIOS 9
Синхронный и асинхронный вызов 11
Типичные процедуры NetBIOS 11
Сервер сеансов: модель асинхронного обратного вызова 19
Сервер сеансов: модель асинхронных событий 24
Клиент сеанса NetBIOS 30
Дейтаграммные операции 34
Дополнительные команды NetBIOS 48
Проверка состояния адаптера (команда NCBASTAT) 49
Команда поиска имени (NCBFINDNAME) 51
Сопоставление протоколов номерам LANA 51
Рекомендации по выбору платформ 52
Платформа Windows СЕ 52
Платформа Windows 9x 52
Для любых платформ 53
Резюме 53
ГЛАВА 2. Перенаправитель 54
Универсальные правила именования 55
Поставщик нескольких UNC 55
Компоненты сетевого доступа 56
Перенаправитель 57
Протокол SMB 57
Безопасность 59
Дескрипторы безопасности 59
Маркеры доступа 61
Сетевая безопасность 61
Реквизиты сеанса 61
Пример 62
Резюме 63
ГЛАВА 3. Почтовые ящики 64
Подробности внедрения почтовых ящиков 64
Имена почтовых ящиков 65
)Л * Размеры сообщений 65 0С| Компиляция приложения 67
Коды ошибок 67
Оглавление
)бщие сведения об архитектуре клиент-сервер 67
Сервер почтовых ящиков 67
Клиент почтовых ящиков 70 1,ополнительные API-функции почтовых ящиков 72
Тлатформа и производит ельность 7 3
Правила именования < 8 3 >
7 3
Неспособность отменить блокирующие запросы ввода-вывода 74
Утечки памяти 76
‘езюме 77
«ЛАВА 4. Именованные каналы 78
[етали реализации именованных каналов 79
Правила именования каналов 79
Режимы побайтовый и сообщений 79
Компиляция приложений 79
Коды ошибок 80 1ростой сервер и клиент 80
Детали реализации сервера 80
Усовершенствованный сервер каналов 87
Детали реализации клиента 95 1,ругие API-вызовы 98 1латформа и производительность 101
‘езюме 101
Ч А С Т Ь I I . ИНТЕРФЕЙС ПРИКЛАДНОГО
1РОГРАММИРОВАНИЯ WINSOCK 103
«ЛАВА 5. Сетевые протоколы 104
Характеристики протоколов 104
Протокол, ориентированный на передачу сообщений 104
Обмен данными, с соединением и без него 106
Надежность и порядок доставки сообщений 1 Об
Сорректное завершение работы 107
Широковещание данных 108
Многоадресное вещание 108
Качество обслуживания 108
Фрагментарные сообщения 109
Маршрутизация 109
Другие характеристики 109
Тоддерживаемые протоколы 110
Сетевые протоколы, поддерживаемые Win32 110
Сетевые протоколы в Windows СЕ 112
Информация о протоколе 112
Зокеты Windows 116
Простые сокеты 118
Информация о платформах 118
Winsock и модель OSI 119
Зыбор соответствующего протокола 119 5
езюме 120
Оглавление VII
ГЛАВА 6. Семейства адресов и разрешение имен 121
Протокол IP 121
Протокол TCP 121
Протокол UDP 122
Адресация 122
Порядок байт 124
Создание сокета 125
Разрешениеимен 125
Инфракрасные сокеты 128
Адресация 128
Разрешение имен 128
Нумерация IrDA-устройств 129
Опрос IAS 131
Создание сокета 133
Параметры сокета 133
Протоколы IPX/SPX 13 3
Адресация 133
Создание сокета 134
Разрешение имен 137
Протоколы NetBIOS 137
Адресация 137
Создание сокета 139
Протокол AppleTalk 140
Адресация 140
Создание сокета 148
Протокол ATM 148
Адресация 149
Создание сокета 153
Привязка сокета к SAP 154
Разрешениеимен 155
Дополнительные функции Winsock 2 155
Резюме 156
ГЛАВА 7. Основы Winsock 157
Инициализация Winsock 157
Проверка и обработка ошибок 159
Протоколы с установлением соединения 160
Серверные API-функции 1б0
API-функции клиента 164
Передача данных 168
Потоковые протоколы 173
Завершение сеанса 175
Пример 176
Протоколы, не требующие соединения 185
Приемник 185
Отправитель 187
Протоколы, ориентированные на передачу сообщений 188
Освобождение ресурсов сокета 189
Пример 189
ЛИ Оглавление
1,ополнительные функции API
Функция getpeername
Функция getsockname
Функция WSADuphcateSocket
Функция TransmitFile
пя платформы Windows СЕ
1ругие семейства адресов
Протокол AppleTalk
Инфракрасные сокеты
Интерфейс с NetBIOS
Протокол IPX/SPX
Протокол ATM
‘езюме «ЛАВА 8. Ввод-вывод в Winsock
‘ежимы работы сокетов
Блокирующий режим
Неблокирующий режим
Додели ввода-вывода сокетов
Модель select
Модель WSAAsyncSelect
Модель WSAEventSelect
Модель перекрытого ввода-вывода
Модель портов завершения ‘равнение моделей ввода-вывода
Клиент
Сервер
5
езюме «ЛАВА 9. Параметры сокета и команды управления
SBOflOM-ВЫВОДОМ
Тараметры сокета
Уровень SOLJOCKET
Уровень параметров SOLAPPLETALK
Уровень параметров SOL IRLMP
Уровень параметров IPPROTOJP
Уровень параметров IPPROTOTCP
Уровень параметров NSPROTO IPX
Функции Ioctlsocket и WSAloctl
Стандартные ioctl-команды
Другие ioctl-команды
Ioctl-команды Secure Socket Layer
Ioctl-команды для ATM
Резюме «ЛАВА 10. Регистрация и разрешение имен введение
Модели пространства имен
Перечень пространств имен
Регистрация службы
197 197 198 198 199 200 201 201 202 202 203 204 204 2 0 5 206 206 208 209 209 213 217 223 234 243 243 243 243 2 4 5 245 246 255 258 262 267 268 272 273 274 282 283 285 2 8 6 286 287 287 289
F
Определение класса службы
Регистрация службы
Запрос к службе
Создание запроса
Запрос к DNS
Резюме
ГЛАВА 11. Многоадресная рассылка
Семантика многоадресной рассылки
Свойства многоадресной рассылки
Многоадресная рассылка в сетях IP
Протокол IGMP
Листовые узлы IP
Реализация 1Р-рассылки
Многоадресная рассылка в сетях ATM
Листовые узлы ATM
Корневые узлы ATM
Оглавление
Многоадресная рассылка с использованием Winsock
Рассылка средствами Winsock 1
Рассылка средствами Winsock 2
Общие параметры Winsock
Ограничение многоадресной рассылки
Резюме
ГЛАВА 12. Качество обслуживания
Введение
Протокол RSVP
Сетевые компоненты
Компоненты приложения
Компоненты политики безопасности
QoS и Winsock
Структуры QoS
Функции, вызывающие QoS
Завершение QoS
Объекты, относящиеся к поставщику
Программирование QoS
RSVP и типы сокетов
Уведомления QoS
Шаблоны QoS
Примеры
Одноадресный TCP
Одноадресный UDP
Многоадресный UDP
ATM и QoS
Резюме
ГЛАВА 13. Простые сокеты
Создание простого сокета
Протокол ICMP
Пример Ping при удаленном доступе
IX
289 293 299 301 304 307
308
308 311
зп
312 313 314 314 315 315 316 316 323 340 342 342 343 343 344 344 346 347 348 349 352 356 356 365 366 368 371 373 373 394 395 396 397 398 398 399 401
Оглавление
Программа Traceroute 411
Протокол IGMP 412
Использование IPJiDRINCL 414
Резюме 424
«ЛАВА 14. Интерфейс Winsock 2 SPI 425
Основы SPI 426
Соглашения SPI об именах 426
Соответствие функций Winsock 2 API и SPI 426
Поставщики транспортной службы 427
Функция WSPStartup 428
Описатели сокетов 433
Поддержка модели ввода-вывода Winsock 435
Модель select 437
Расширенные функции 446
Установка поставщиков транспортной службы 447
Тоставщики службы пространства имен 453
Установка поставщика пространства имен 453
Реализация пространства имен 455
Пример 461
Отладочные функции отслеживания Winsock 2 SPI 466
Резюме 467
«ЛАВА 15. Элемент управления Winsock 468
Свойства 468
Методы 470
События 471
Пример (UDP-приложение) 472
Пересылка UDP-сообщений 476
Прием UDP-сообщений 477
Получение информации от элемента Winsock 478
Запуск UDP-приложения 478
Состояние UDP-сокетов 479 11ример (TCP-приложение) 480
СР-сервер 487
TCP-клиент 489
Получение информации о состоянии элемента управления Winsock 490
Запуск TCP-приложения 490
Состояние ТСР-сокетов 491
Ограничения 491
Гипичные ошибки 493
Ошибка Local address in use 493
Ошибка Invalid Operation at Current State 493
Элемент управления Windows СЕ Winsock 494
Пример 494
Проблема с элементом управления
VBCE Winsock 499
Резюме 499
Оглавление XI
Ч А С Т Ь I I I . СЛУЖБА УДАЛЕННОГО
ДОСТУПА (RAS) 500
ГЛАВА 16. Клиент службы RAS 501
Компиляция и компоновка 502
Структуры данных и вопросы совместимости платформ 503
Обновление DUN 1.3 и Windows 95 503
Функция RasDial 503
Синхронный режим 506
Асинхронный режим 507
Уведомление о состоянии 512
Завершение соединения 513
Телефонный справочник 514
Добавление записей в телефонный справочник 522
Переименование записи телефонного справочника 525
Удаление записей из телефонного справочника 525
Перечисление записей телефонного справочника 526
Управление реквизитами пользователя 527
Многоканальные подзаписи телефонного справочника 529
Управление соединением 530
Резюме 534
Приложение А. Перечень команд NetBIOS 535
Приложение В. Вспомогательные функции IP 549
Возможности утилиты Ipconfig 549
Освобождение и обновление IP-адресов 553
Изменение IP-адреса 554
Возможности утилиты Netstat 554
Получение таблицы TCP-соединений 555
Получение таблицы прослушиваемых портов UDP 556
Получение статистики о протоколе IP 557
Возможности утилиты Route 561
Получение таблицы маршрутов 562
Добавление маршрута 564
Удаление маршрута 565
Утилита ARP 565
Добавление записи ARP 567
Удаление записи ARP 567
Приложение С. Коды ошибок Winsock 568
От авторов 575
Предметный указатель 576
if
-Г
-д
Введение
Перед вами книга, посвященная сетевым функциям Windows 9х, NT 4, 2000
и СЕ Она предназначена в первую очередь опытным программистам и спе- циалистам по сетям Впрочем, для начинающих она может послужить полез- ным справочным пособием и даже вводным курсом по сетевым функциям
О чем эта книга
В книге три части, посвященные работе в сети с применением NetBIOS и пе- ренаправителя Windows, Winsock и RAS соответственно
В главе 1 рассматривается NetBIOS По нашему опыту работы в команде поддержки разработчиков Microsoft мы знаем, что многие компании все еще используют эту технологию Между тем, до сих пор нет адекватного руковод- ства по написанию приложений NetBIOS для платформ Win32 В главе 1 так- же приводятся методы написания надежных и переносимых приложений (с учетом, что многие разработчики используют NetBIOS именно для связи с устаревшими системами)
Главы 2-4 посвящены перенаправителю Windows, почтовым ящикам и именованным каналам Как вы знаете, почтовые ящики и именованные ка- налы основаны на перенаправителе Мы решили посвятить перенаправите- лю целую главу, чтобы предоставить читателю базовую информацию о том,
как три эти технологии соотносятся друг с другом Почтовые ящики — это ненадежный однонаправленный ориентированный на сообщения интер- фейс прикладного программирования, не зависимый от доступных в систе- ме протоколов Именованные каналы обладают более широкими возможно- стями, обеспечивая надежную двустороннюю дейтаграммную или поточную передачу данных Эти каналы используют средства безопасности Windows
NT за счет перенаправителя, на что не способен ни один другой сетевой API- интерфейс
Вторая часть книги посвящена API-интерфейсу Winsock Глава 5 — это введение в Winsock, где рассказывается о наиболее распространенных про- токолах Winsock Все приложения Winsock должны создавать сокет для осу- ществления связи В этой главе мы приводим основную информацию о воз- можностях каждого протокола, а в главе б — подробное описание, как со- здать сокет и разрешить имя для каждого типа протокола
В главе 7 — самое интересное Здесь мы представляем базовую модель про- граммирования клиент-сервер и описываем большинство функций Winsock,
которые относятся к установлению и приему связи, передаче данных и г п
Далее, в главе 8 рассказывается о методах ввода-вывода в Winsock Так как глава
7 задумывалась как введение в указанную тему, в ней обсуждаются только про- стейшие методы ввода-вывода В главе 8, напротив, эти методы описаны под-
Введение робно Если вы новичок в работе с Winsock, то главы 5-7 помогут вам овла- деть основами использования этого API-интерфейса
Остальные главы этой части книги посвящены особым аспектам и воз- можностям Winsock Параметры сокетов и команды управления вводом-вы- водом рассмотрены в главе 9 Именно здесь вы найдете описание большинства команд, влияющих на работу сокета или даже протокола На- деемся, эта глава будет полезна, как в учебных, так и в справочных целях
В главе 10 рассмотрена регистрация и разрешение имен служб в адреса базового протокола в Winsock 2 Это независимый от протокола метод Рас- пространение Windows 2000 и Active Directory придает данной главе особую значимость
Глава 11 посвящена связи «точка — много точек>>, включая многоадресное
IP- вещание и ATM В главе 12 описана захватывающая технология — Quality of Service (QoS), позволяющая гарантировать выделение пропускной способ- ности сети для приложений В главе 13 рассказывается о простых 1Р-соке- тах мы рассматриваем, как приложения Winsock могут использовать их для работы с протоколами ICMP и IGMP, а также другие аспекты программиро- вания при помощи простых сокетов
В главе 14 описан интерфейс поставщика службы для Winsock — средства,
при помощи которого программист может задать уровень между Winsock и поставщиками служб более низких уровней (например, TCP/IP) для управ- ления работой сокета и протокола, регистрацией и разрешением имен Этот сложный инструмент позволяет расширить функциональность Winsock
И наконец, в главе 15 обсуждается элемент управления Microsoft Visual
Basic для Winsock Мы решили включить эту главу в книгу, так как убедились,
что многие разработчики до сих пор полагаются на Visual Basic и этот эле- мент Функциональность элемента Winsock ограничена и не позволяет ис- пользовать дополнительные новые свойства Winsock, но он незаменим для тех, кому требуется простая и легкая в использовании сетевая связь в Visual
Basic
Часть III посвящена клиентскому серверу удаленного доступа (Remote
Access Server, RAS) Мы решили включить в книгу главу о RAS из-за популяр- ности Интернета и широкого распространения коммутируемого доступа к нему Возможность коммутируемого доступа в сетевом приложении очень полезна, так как упрощает работу пользователя с программой То есть конеч- ному пользователю не придется думать, как установить соединение, чтобы работать с сетевым приложением
В конце книги — три приложения Приложение А — справочник по ко- мандам NetBIOS, который, по нашему мнению, для программистов бесценен
В нем перечислены параметры ввода и вывода для каждой команды В при- ложении В описаны новые вспомогательные функции IP, выдающие полез- ную информацию о сетевой конфигурации текущего компьютера Приложе- ние С — справочник по кодам ошибок Winsock с подробным описанием от- дельных ошибок и возможных причин их возникновения
XIV Введение
Мы надеемся, что наша работа станет для вас ценным учебным и справоч- ным пособием. Думаем, что это наиболее полная книга о сетевом програм- мировании для Windows.
Как пользоваться прилагаемым
компакт-диском
В тексте книги мы часто приводим примеры программ, иллюстрирующие ра- боту с обсуждаемыми сетевыми API-интерфейсами. Эти примеры записаны на прилагаемый компакт-диск. Для их установки вставьте компакт-диск в диско- вод, и программа Autorun запустит программу установки. Программу установ- ки можно также инициировать вручную, запустив файл PressCD.exe из корне- вого каталога компакт-диска. Вы вправе установить образцы кода на компь- ютер или работать с ними прямо с компакт-диска (из папки ExamplesChap- tersChapter XX).
ПРИМЕЧАНИЕ Для работы с компакт-диском необходима 32-битная
ОС Windows.
Наряду с примерами программ в состав компакт-диска ыключена послед- няя версия Microsoft Platform SDK. Мы сделали это, потому что многие из наших примеров рассчитаны на современные заголовочные файлы и биб- лиотеки, которые появились только после Windows 2000 Beta 3.
Поддержка
Авторы приложили все усилия, чтобы обеспечить точность содержания кни- ги и прилагаемого к ней компакт-диска. Издательство Microsoft Press публи- кует постоянно обновляемый список исправлений и дополнений к своим книгам по адресу http://mspress.microsoft.com/support/.
Многие определения функций и таблицы в книге адаптированы или пе- реизданы с разрешения и при активном участии группы документирования
Microsoft Platform SDK. Часть материала основана на предварительно разра- ботанной документации и может претерпеть изменения. Информацию, об- новления и исправления ошибок по последней версии SDK см. на Web- узле MSDN по адресу: http://msdn.microsoft.com/developer/sdk/platform.asp.
Если все же у вас возникнут вопросы или вы захотите поделиться свои- ми предложениями или комментариями, обращайтесь в издательство Mic- rosoft Press по одному из этих адресов:
mspinput@microsoft.com
Microsoft Press
Attn: Network Programming for Microsoft Windows Editor
One Microsoft Way
Redmond, WA 98052-6399
Ч А С Т Ь I
УСТАРЕВШИЕ
СЕТЕВЫЕ API
о
Первая часть издания посвящена сетевому интерфейсу NetBIOS, перенапра- вителю и типам использующих его сетевых соединений. Хотя в книге в ос- новном обсуждается программирование средствами Winsock, мы включили в нее часть I, так как устаревшие сетевые API имеют некоторые преимуще- ства перед Winsock.
В главе 1 рассматривается интерфейс NetBIOS, который, как и Winsock,
является независимым от протокола сетевым API. NetBIOS обеспечивает асинхронные вызовы, а также совместимость со старыми операционными системами типа OS/2, DOS и др. В главе 2 обсуждается перенаправитель, с которым связаны две следующие темы: почтовые ящики (глава 3) и имено- ванные каналы (глава 4). Перенаправитель обеспечивает независимый от транспорта ввод-вывод файлов. Почтовые ящики — это простой интерфейс,
который помимо прочего поддерживает широковещание и однонаправлен- ное взаимодействие между компьютерами под управлением Windows. Нако- нец, именованные каналы дают возможность использовать двусторонний ка- нал связи, который поддерживает функции безопасности Windows.
Г Л А В А
Интерфейс NetBIOS
Network Basic Input/Output System (NetBIOS) — стандартный интерфейс
прикладного программирования (application programming interface, API),
разработанный Sytek Corporation для IBM в 1983 г. NetBIOS определяет про- граммный интерфейс для сетевой связи, но не обусловливает физический способ передачи данных по сети. В 1985 г. IBM предприняла попытку сфор- мировать цельный протокол — создала NetBIOS Extended User Interface (Net-
BEUI), интегрированный с интерфейсом NetBIOS. Программный интерфейс
NetBIOS вскоре приобрел такую популярность, что поставщики ПО начали реализовать его для других протоколов, таких как TCP/IP и IPX/SPX. В на- стоящее время NetBIOS используют платформы и приложения во всем мире,
включая многие компоненты Windows NT, Windows 2000, Windows 95 и
Windows 98.
ПРИМЕЧАНИЕ Windows СЕ не дает возможности использовать Net-
BIOS API, хотя поддерживает транспортный протокол TCP/IP, имена
NetBIOS и механизм их разрешения.
В Win32 интерфейс NetBIOS обеспечивает обратную совместимость со старыми приложениями. В этой главе обсуждаются главные принципы про- граммирования с помощью NetBIOS, начиная с имен NetBIOS и номеров
LANA. Мы рассмотрим основные услуги, предлагаемые NetBIOS, включая те,
что обеспечивают связь с установлением соединения или без такового (дей- таграммные). В каждом разделе будет приведен простой клиент-серверный пример. Завершит главу обзор типичных ошибок. В приложении А вы най- дете список команд NetBIOS с обязательными параметрами и кратким опи- санием.
Сетевая модель 0SI
Модель Open Systems Interconnect (OSI) обеспечивает высокоуровне- вое представление сетевых систем. Ее семь уровней полностью опи- сывают фундаментальные сетевые концепции: от приложения до спо- соба физической передачи данных. Вот эти уровни:
Я прикладной — предоставляет пользовательский интерфейс для передачи данных между программами;
• представительский — форматирует данные;
Ш сеансовый — управляет связью между двумя узлами;
I J • l- •_# r-i
Ш транспортный — обеспечивает передачу данных (надежную или ненадежную);
И сетевой — поддерживает механизм адресации между узлами и маршрутизацию пакетов данных;
• канальный — управляет взаимодействием между узлами на физи- ческом уровне; отвечает за группировку данных, передаваемых по физическому носителю;
II физический — физический носитель, ответственный за переда- чу данных в виде электрических сигналов.
В этой модели NetBIOS относится к сеансовому и транспортному уровням.
Интерфейс Microsoft NetBIOS
Как уже упоминалось, существуют реализации NetBIOS API для разных сете- вых протоколов, что делает интерфейс независимым от протокола. Иначе говоря, если вы разработали приложение согласно спецификации NetBIOS,
оно может использовать протоколы TCP/IP, NetBEUI или даже IPX/SPX. Эта полезная особенность позволяет корректно написанному приложению Net-
BIOS выполняться почти на любом компьютере, независимо от физической сети. Однако есть несколько нюансов. Чтобы два приложения NetBIOS мог- ли связаться друг с другом по сети, они должны выполняться на рабочих станциях, имеющих по крайней мере один общий транспортный протокол.
Например, если на компьютере Джона установлен только TCP/IP, а на ком- пьютере Мэри — только NetBEUI, приложения NetBIOS на компьютере Джо- на не смогут связаться с приложениями на компьютере Мэри.
Кроме того, только определенные протоколы реализуют интерфейс Net-
BIOS. Например, Microsoft TCP/IP и NetBEUI делают это по умолчанию, a IPX/
SPX — нет. Поэтому Microsoft предлагает реализующую этот интерфейс вер- сию IPX/SPX, что следует учесть при проектировании сети. При установке протоколов обычно видно, поддерживает ли версия протокола IPX/SPX воз- можности NetBIOS. Например, вместе с Windows 2000 поставляется NWLink
IPX/SPX/NetBIOS Compatible Transport Protocol — то, что этот протокол под- держивает NetBIOS, прямо вытекает из его названия. В Windows 95 и Win- dows 98 в окне свойств протокола IPX/SPX есть флажок, с помощью которо- го включается поддержка NetBIOS для IPX/SPX.
Важно, что NetBEUI — немаршрутизируемый протокол. Если между кли- ентом и сервером есть маршрутизатор, приложения на этих компьютерах не смогут связаться. Маршрутизатор будет отбрасывать пакеты по мере их при- ема. TCP/IP и IPX/SPX — маршрутизируемые протоколы и не имеют такого ограничения. Так что если вы твердо запланировали использовать NetBIOS,
задействуйте в сети по крайней мере один из маршрутизируемых транспор- тных протоколов. Характеристики протоколов и рекомендации по их выбо- ру мы приводим в главе 6.
ЧАСТЬ I Устаревшие сетевые API
Номера LANA
Какое отношение имеют транспортные протоколы к NetBIOS с точки зре- ния программирования’ Ключ к пониманию NetBIOS — номера сетевых
адаптеров (LAN Adapter, LANA). В первоначальных реализациях NetBIOS
каждому физическому сетевому адаптеру присваивалось уникальное значе- ние — номер LANA. В Win32 это стало проблематичным, так как рабочая станция может иметь и множество сетевых протоколов, и множество плат сетевого интерфейса.
Номер LANA соответствует уникальным сочетаниям сетевого адаптера с транспортным протоколом. Так, если рабочая станция имеет две сетевых платы и два поддерживающих NetBIOS транспорта (например, TCP/IP и
NetBEUI), будет присвоено четыре номера LANA. Номера могут соответство- вать сочетаниям адаптера с протоколом примерно следующим образом:
0 — «TCP/IP — сетевой адаптер 1»;
1 — «NetBEUI — сетевой адаптер 1»;
2 — «TCP/IP — сетевой адаптер 2»;
3 — «NetBEUI — сетевой адаптер 2».
Номера LANA лежат в диапазоне от 0 до 9, и операционная система на- значает их без какого-либо определенного порядка Кроме LANA 0, который имеет особый смысл — это номер «по умолчанию» Когда появился интер- фейс NetBIOS, большинство операционных систем поддерживало един- ственный номер LANA и многие приложения были жестко запрограммиро- ваны на работу только с LANA 0. Для обратной совместимости вы можете вручную назначить LANA 0 конкретному протоколу
В Windows 95 и Windows 98 можно открыть диалоговое окно свойств се- тевого протокола с помощью значка Network в Control Panel. Выберите вклад- ку Configuration в диалоговом окне Network, затем из списка компонентов —
сетевой протокол и щелкните кнопку Properties Вкладка Advanced диалогово- го окна свойств для каждого протокола, поддерживающего NetBIOS, содержит флажок Set This Protocol To Be The Default Protocol Пометка флажка пере- страивает привязки протоколов так, чтобы протоколу по умолчанию был назначен LANA 0 Этот флажок можно пометить только для одного прото- кола Поскольку Windows 95 и Windows 98 поддерживают Plug-and-Play, не требуется явно задавать приоритет протоколов.
Windows NT 4 допускает большую гибкость в установке NetBIOS На вклад- ке Services диалогового окна Network выберите NetBIOS Interface из списка
Network Services и щелкните кнопку Properties. В диалоговом окне NetBIOS
Configuration вы можете явно назначить номера LANA всем сочетаниям се- тевого интерфейса с транспортным протоколом В этом диалоговом окне сетевой интерфейс определяется именем его драйвера. Впрочем, имена про- токолов не всегда говорят сами за себя. На рис 1 -1 показано диалоговое окно
NetBIOS Configuration. Оно свидетельствует: на компьютере установлено два сетевых адаптера и три транспортных протокола — TCP/IP (NetBT), NetBEUI
(Nbf) и IPX/SPX (NwlnkNb). Щелкнув кнопку Edit, вы можете вручную назна- чить номера LANA для отдельных протоколов.
Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе Win32 с использованием интерфейсов программирования NetBIOS и Winsock, а также распространенных протоколов.
Скачать книгу «Программирование в сетях Microsoft Windows»
О книге
Бывает так, что, сосредоточиваясь на собственной жизни, забываешь, как много интересного может происходить в мире, насколько увлекательны истории других людей. В таком случае чтение будет отличным способом отдохнуть и увидеть что-то новое. И это даёт не только новые эмоции, но и понимание, как неоднозначно всё в нашей жизни.
Книга Джонс Энтони, Оланд Джим «Программирование в сетях Microsoft Windows» позволит приятно провести время за чтением, произведение относится к жанру программирование. Это книга, в которой можно найти для себя полезные мысли и сделать выводы, наблюдая за поступками героев. Каждый персонаж тщательно проработан, чтобы читатель мог понять особенности его личности и поступки.
Писатель говорит о таких темах, которые актуальны во все времена, потому что люди все равно остаются людьми и не забудут о том, что им важно. Это такое произведение, которое приносит не только удовольствие при чтении, но и развивает духовно. После прочтения книги понадобится ещё какое-то время, чтобы осмыслить рассказанное и сделать выводы для себя. Книгу «Программирование в сетях Microsoft Windows» можно скачать на нашем сайте в формате pdf или читать онлайн.
Популярные книги жанра «Программирование»
С этой книгой читают
Программирование на Objective-C 2.0Кочан Стивен
Оцифровано и опубликовано сайтом http://objc.website.
Полный вводный курс по языку Objective-C для разработки приложений на Mac OS X и iPhone.Objective-C стал…
Программирование под AndroidХарди Брайан
Эта книга научит вас всем тонкостям разработки приложений для мобильных устройств, работающих на популярной операционной системе Android. Основанное на учебном курсе…
Linux программирование в примерахАрнольд Роббинс
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи…
Язык программирования C++Глушаков Сергей Владимирович, Коваль А. Б.
Данная книга представляет собой одно из самых ёмких и полных из существующих руководств по языку C++. В ней рассмотрено множество специальных вопросов, а также даны…
Основы программирования в LinuxМэтью Нейл, Стоунс Ричард
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств…
Основы программирования на JavaСухов Сергей Альбертович
Учебное пособие разработано в соответствии с программой курса «Информатика» и предназначено для студентов радиотехнического факультета, но может использоваться и…
Антихакинг в сети. ТрюкиЛокхарт Эндрю
Интернет является не только наиболее удобным средством совместной работы, но и потенциально опасной средой. При работе в Сети ваши компьютеры могут подвергнуться атаке…
- 913
- 0
- 0
Скачать книгу в формате:
- fb2
- epub
- rtf
- mobi
- txt
Аннотация
Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе Win32 с использованием интерфейсов программирования NetBIOS и Winsock, а также распространенных протоколов. На конкретных примерах рассмот- рены клиент-серверная модель; установка соединения и передача данных; регистрация и разрешение имен, в том числе применительно к Windows 2000 и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ. В приложениях содержится справочник команд NetBIOS (с указанием вход- ных и выходных параметров), сведения о новых функциях IP Helper, а так- же справочник кодов ошибок Winsock. Адресована как профессиональным программистам, так и новичкам, для которых станет удобным справочником и исчерпывающим пособием по использованию сетевых функций Windows Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый компакт-диск содержит примеры программ.
ЕЩЕ
Популярные книги
-
- Читаю
- В архив
- 48569
- 8
- 4
Аннотация:
Кассандра Клэр Город костей Орудия смерти — 1 Посвящается дедушке. Сравниться может время…
Блок — 16 стр.
-
- Читаю
- В архив
- 94402
- 33
- 2
Аннотация:
В бизнесе (да и в жизни в целом) постоянно приходится покидать зону комфорта: выступать публично, ве…
Фрагмент — 4 стр.
-
- Читаю
- В архив
- 86003
- 24
- 9
Аннотация:
Каждый день нашей жизни мы практически погребены под лавиной в буквальном смысле более чем из мил…
Блок — 15 стр.
-
- Читаю
- В архив
- 58318
- 18
- 3
Аннотация:
Когда на смену любви и близости приходят неудовлетворенность, ссоры и охлаждение, страдают оба па…
Фрагмент — 7 стр.
Здравствуй уважаемый читатель. Книга «Программирование в сетях Microsoft Windows» Джонс Энтони (EN) относится к разряду тех, которые стоит прочитать. Из-за талантливого и опытного изображения окружающих героев пейзажей, хочется быть среди них и оставаться с ними как можно дольше. Небезынтересно наблюдать как герои, обладающие не высокой моралью, пройдя через сложные испытания, преобразились духовно и кардинально сменили свои взгляды на жизнь. Долго приходится ломать голову над главной загадкой, но при помощи подсказок, получается самостоятельно ее разгадать. Обильное количество метафор, которые повсеместно использованы в тексте, сделали сюжет живым и сочным. Обращает на себя внимание то, насколько текст легко рифмуется с современностью и не имеет оттенков прошлого или будущего, ведь он актуален во все времена. В тексте находим много комизмов случающихся с персонажами, но эти насмешки веселые и безобидные, близки к умилению, а не злорадству. Кажется невероятным, но совершенно отчетливо и в высшей степени успешно передано словами неуловимое, волшебное, редчайшее и крайне доброе настроение. С первых строк обращают на себя внимание зрительные образы, они во многом отчетливы, красочны и графичны. Несмотря на изумительную и своеобразную композицию, развязка потрясающе проста и гениальна, с проблесками исключительной поэтической силы. Попытки найти ответ откуда в людях та или иная черта, отчего человек поступает так или иначе, частично затронуты, частично раскрыты. «Программирование в сетях Microsoft Windows» Джонс Энтони (EN) читать бесплатно онлайн можно неограниченное количество раз, здесь есть и философия, и история, и психология, и трагедия, и юмор…
Новинки
- 187
- 2
- 0
Аннотация:
Нам нужен кто-то, кого мы можем назвать своей, кто станет нашей Негодницей. Делиться — значит з…
Полный текст — 17 стр.
Нам нужен кто-то, кого мы можем назвать своей, кто станет нашей Негодницей. Делиться — значит з…
- 9
- 0
- 0
Аннотация:
Генке Журавлеву семнадцать. Он терпеть не может поезда. Любит маму. Вечно «выясняет» отношения со …
Фрагмент — 35 стр.
Генке Журавлеву семнадцать. Он терпеть не может поезда. Любит маму. Вечно «выясняет» отношения со …
- 14
- 0
- 0
Аннотация:
Зло вернулось! Теперь наши герои должны снова с ним сразится! Но победят ли они? Зло сильнее и хит…
Полный текст — 20 стр.
Зло вернулось! Теперь наши герои должны снова с ним сразится! Но победят ли они? Зло сильнее и хит…
- 129
- 0
- 0
Аннотация:
Вера отправилась в прошлое, чтобы написать диплом о жизни девятнадцатого века. Но, когда пришло вр…
Полный текст — 43 стр.
Вера отправилась в прошлое, чтобы написать диплом о жизни девятнадцатого века. Но, когда пришло вр…
- 344
- 20
- 0
Аннотация:
«Чти Кодекс и ты отдохнешь в следующей жизни!» — говорили они… «Будет весело!» — говорили они… А че…
В процессе — 28 стр.
«Чти Кодекс и ты отдохнешь в следующей жизни!» — говорили они… «Будет весело!» — говорили они… А че…
- 74
- 0
- 0
Аннотация:
Героиня забирает домой бездомного кота. Привязывается к нему и решает оставить навсегда. Правда, п…
Полный текст — 12 стр.
Героиня забирает домой бездомного кота. Привязывается к нему и решает оставить навсегда. Правда, п…
- 372
- 11
- 0
Аннотация:
11 июня 1630 года в одно время, но через разные ворота в Париж въехали два кавалера. Первый — блон…
Полный текст — 54 стр.
11 июня 1630 года в одно время, но через разные ворота в Париж въехали два кавалера. Первый — блон…
Содержание
- Программирование в сетях Microsoft Windows
- Скачать книгу (полная версия)
- О книге «Программирование в сетях Microsoft Windows»
- ProgBook — книги и учебники по программированию
- Примеры сетевого программирования
- В этом разделе
- Программирование в сетях Windows
- Программирование в сетях Windows
Программирование в сетях Microsoft Windows
Скачать книгу (полная версия)
О книге «Программирование в сетях Microsoft Windows»
Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе Win32 с использованием интерфейсов программирования NetBIOS и Winsock, а также распространенных протоколов. На конкретных примерах рассмот- рены клиент-серверная модель; установка соединения и передача данных; регистрация и разрешение имен, в том числе применительно к Windows 2000 и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ. В приложениях содержится справочник команд NetBIOS (с указанием вход- ных и выходных параметров), сведения о новых функциях IP Helper, а так- же справочник кодов ошибок Winsock. Адресована как профессиональным программистам, так и новичкам, для которых станет удобным справочником и исчерпывающим пособием по использованию сетевых функций Windows Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый компакт-диск содержит примеры программ.
Произведение было опубликовано в 2002 году издательством Русская Редакция. На нашем сайте можно скачать бесплатно книгу «Программирование в сетях Microsoft Windows» в формате pdf или читать онлайн. Здесь так же можно перед прочтением обратиться к отзывам читателей, уже знакомых с книгой, и узнать их мнение. В интернет-магазине нашего партнера вы можете купить и прочитать книгу в бумажном варианте.
Источник
ProgBook — книги и учебники по программированию
Навазние: Программирование в сетях Microsoft Windows
Автор: Э. Джонс, Д. Оланд
Издательство: Питер, Русская Редакция
Год: 2002
ISBN: 5-318-00725-2
PDF: 72 Мб
Как следует из названия, книга «Программирование в сетях Microsoft Windows» посвящена операционным системам семейства Windows и их сетевым функциям. Рассмотрены особенности работы с программными интерфейсами NetBIOS и WinLock и наиболее известными протоколами на платформе Win32 применительно к сетевому программированию и разработке приложений. Материал снабжен практическими примерами, в которых детально обсуждается множество вопросов, возникающих в ходе настройки и реализации различных видов сетевого взаимодействия — например, в рамках модели клиент-сервер. Кроме того, объясняется, как устанавливать соединение, передавать данные, регистрировать и разрешать имена, работать с настройками удаленного доступа, сетевого широковещания и т.д. Особое внимание уделяется Windows 2000, Active Directory, QoS и ATM. Книга состоит из пятнадцати глав, трех приложений и предметного указателя. В числе приложений – справочник команд NetBIOS с входными и выходными параметрами, информация о кодах ошибок WinSock, описание новых функций IP Helper, а также компакт-диск с примерами упомянутых в книге программ. Издание предназначено для программистов, а также для тех, кто делает свои первые шаги в сфере сетевого программирования.
8,667 просмотров всего, 1 просмотров сегодня
Источник
Примеры сетевого программирования
В этом разделе приводятся описание и ссылки для скачивания примеров сетевого программирования, в которых используются классы из System.Net, System.Net.Cache, System.Net.Configuration, System.Net.Mail, System.Net.Mime, System.Net.NetworkInformation, System.Net.Security, System.Net.Sockets и связанных с ними пространств имен.
В этом разделе
Пример технологии индикатора хода скачивания
Демонстрирует, как отобразить состояние процесса скачивания файла.
Пример клиентской технологии FTP
Демонстрирует, как загружать файлы на FTP-сервер и скачивать с него.
Пример технологии HttpListener
Демонстрирует, как обрабатывать HTTP-запросы в приложении.
Образец ведущего приложения ASPX HttpListener Демонстрирует, как использовать функции класса System.Net.HttpListener для создания HTTP-сервера, который перенаправляет вызовы в размещенное приложение ASP.NET.
Пример технологии системы рассылки почты
Демонстрирует, как отправлять сообщения электронной почты из клиентского приложения.
Пример технологии средства NetStat
Демонстрирует использование средства для работы со сведениями о сети NCLNetStat.
Пример сетевых информационных технологий
Демонстрирует, как отслеживать и отображать сведения о сети.
Пример клиентской технологии проверки связи
Демонстрирует клиентское приложение, которое может проверять наличие связи с удаленным узлом.
Пример технологии веб-клиента
Демонстрирует, как выполнять общие операции, например загружать и скачивать файлы или данные.
Пример безопасных потоков
Демонстрирует способ использования безопасного потока для соединения между клиентом и сервером.
Пример сокетов IPv6
Демонстрирует, как использовать сокеты при включенном протоколе IPv6.
Пример технологии FTP Explorer
Демонстрирует, как вывести список содержимого FTP-сервера.
Источник
Программирование в сетях Windows
Здесь параметр 5 — интересующий нас сокет, а параметр hEventObject — объект «событие», полученный из вызова WSACreateEvent, который нужно связать с сокетом. Последний параметр INetworkEvents — битовая маска получаемая комбинацией масок типов сетевых событий, которые надо отслеживать. Подробно эти типы обсуждались при описании предыдущей модели — WSAAsyncSelect.
У события, используемого в модели WSAEventSelect, два рабочих состояния
— свободное (signaled) и занятое (nonsignaled), а также два оперативных режима — ручного (manual) и автоматического сброса (auto reset). Первоначально событие создается в занятом состоянии и режиме ручного сброса. Когда на сокете происходит сетевое событие, связанный с эти событием объект становится занятым. Так как объект события создается в режиме ручного сброса, приложение ответственно за его возврат в занятое состояние после обработки ввода-вывода. Это можно сделать, вызвав функцию WSAResetEvenP.
BOOL WSAResetEvent(WSAEVENT hEvent);
Она принимает описатель события в качестве единственного параметра и возвращает TRUE или FALSE, в зависимости от успешности вызова. Закончив работу с объектом события, приложение должно вызвать функцию WSACloseEvent для освобождения системных ресурсов, используемых объектом:
BOOL WSACloseEvent(WSAEVENT hEvent);
Эта функция также принимает описатель события в качестве единственного параметра и возвращает TRUE или FALSE, в зависимости от успешности вызова.
Сопоставив сокет описателю события, приложение может начать обработку ввода-вывода, ожидая изменения состояния описателя. Функция WSAWaitForMultipleEvents будет ожидать сетевое событие и вернет управление, когда один из заданных описателей объектов событий перейдет в свободное состояние или когда истечет заданный таймаут.
DWORD WSAWaitForMultipleEvents( DWORD cEvents,
const WSAEVENT FAR * lphEvents, BOOL fWaitAll,
DWORD dwTimeout, BOOL fAlertable
Здесь параметры cEvents и lphEvents определяют массив объектов типа WSAEVENT, в котором cEvents — количество элементов, a lphEvents — указатель на массив. Функция WSAWaitForMultipleEvents поддерживает не более WSA_MAXIMUM_WAIT_EVENTS (64) объектовсобытий.Поэтомуданнаямодель ввода-вывода способна одновременно обслуживать максимум 64 сокета для каждого потока, вызывающего WSAWaitForMultipleEvents.
ГЛАВА 8 Ввод-вывод в Wmsock
Если необходимо обслуживать больше сокетов, создайте дополнительные бочие для дополнительных объектов событий. Параметр JWaitAll оп р е д е л яет, как функция WSAWaitForMultipleEvents реагирует на события. Если о н равен TRUE, функция завершается после освобождения всех событий, перечисленных в массиве iphEvents. Если же FALSE — функция завершится, как только будет свободен любой объект события. В последнем случае воз-
вращаемое значение показывает, какой именно объект был свободен.
Как правило, приложения присваивают этому параметру FALSE и обрабатывают одно событие сокета за раз. Параметр dwTimeout указывает, сколько миллисекунд функция должна ожидать сетевого события. Когда истекает таймаут, функция завершается, даже если не выполнены условия, определенные параметром JWaitAll. Если таймаут равен 0, функция проверяет состояние заданных объектов и выходит немедленно, что позволяет приложению эффективно проверить все события. Задавать нулевой таймаут не рекомендуется из соображений быстродействия. Если нет событий для обработки, функция WSAWaitForMultipleEvents возвращает значение WSA_WAIT_TIMEOUT.
Если параметр divsTimeout равен WSAJNF1NITE, функция закончит работу только после освобождения какого-либо события. Последним параметром — fAlertable, можно пренебречь в модели WSAEventSelect, присвоив ему FALSE: он применяется в процедурах завершения процессов в модели перекрытого ввода-вывода, которая описана далее.
Функция WSAWaitForMultipleEvents, получив уведомление о сетевом событии, возвращает значение, определяющее его исходный объект. Найдя событие в массиве событий и связанный с ним сокет, приложение может определить, событие какого типа произошло на конкретном сокете. Для определения индекса события в массиве IphEvents нужно вычесть из возвращаемого значения константу WSA_WAIT_EVENTJ):
Выяснив сокет, на котором произошло событие, определяют доступные сетевые события, вызвав функцию WSAEnumNetworkEvents-.
int WSAEnumNetworkEvents( SOCKET s,
WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents
Параметр s — сокет, на котором произошло сетевое событие. Необязательный параметр hEventObject — описатель связанного события, которое нужно сбросить. Так как событие в этот момент находится в свободном состоянии, можно передать его описатель для перевода в занятое состояние, ли Н е желательно использовать параметр hEventObject, используйте функ-
интерфейс прикладного программирования Wmsock
> WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;
Последний параметр — ipNetworkEvents, принимает указатель на структуру WSANETWORKEVENTS, в которой передается тип произошедшего события и код ошибки. Параметр INetworkEvents определяет тип произошедшего события.
ПРИМЕЧАНИЕ При освобождении события иногда генерируется несколько типов сетевых событий. Например, интенсивно используемый сервер может одновременно получить сообщения FDJREAD и FDJWRITE.
Параметр iErrorCode — массив кодов ошибок, связанных с событиями из массива INetworkEvents. Для каждого типа сетевого события существует индекс события, обозначаемый тем же именем с суффиксом BIT. Например, для типа события FDJREAD идентификатор индекса в массиве iErrorCode обозначается FDJREADJ3IT. Вот анализ кода ошибки для события FD READ:
II Обработка уведомления FD_READ
if (NetworkEvents.INetworkEvents & FD_READ)
printf(«FD_READ failed with error Xdn», NetworkEvents.iErrorCode[FD_READ_BIT]);
Послеобработкисобытий,описанныхвструктуре WSANETWORKEVENTS приложение может продолжить ожидание сетевых событий на доступных сокетах. В листинге 8-6 показано применение модели WSAEventSelect для программирования сервера и управления событиями. Выделены обязательные этапы, лежащие в основе программирования сервера, способного обслуживать несколько сокетов одновременно.
WSAEVENT Event[WSA_MAXIMUM_WAIT_EVENTS]; SOCKET Accept, Listen;
DWORD EventTotal = 0; DWORD Index;
// Настройка ТСР-сокета для прослушивания порта 5150 Listen = socket (PF_INET, SOCK_STREAM, 0);
Источник
Программирование в сетях Windows
Приложение А Перечень команд NetBIOS
Команда получает сведения о состоянии сеанса. При вызове этой команды ncb_buffer ссылается на область памяти, которая будет заполнена структурой SESSION’_ HEADER, далее следуют одна или более структур SESSION_BUFFER. Если первый байт ncbjname — звездочка (‘), команда выясняет состояние для всех сеансов, связанных со всеми именами в таблице локальных имен. Если предоставленный буфер слишком мал, выдается ошибка NRCJNCOMP (0x06). Если длина буфера меньше 4 байт — ошибка NRCJBUFLEN (0x01).
Команда отменяет привязку к адаптеру. Предусмотрена для совместимости с ранними версиями NetBIOS и на платформах Win32 не оказывает эффекта.
П Р И Л О Ж Е Н И Е
В этом приложении мы опишем некоторые новые API-функции для получения информации и настройки параметров протокола IP. Эти функции позволяют программно использовать возможности следующих стандартных IP-
• Ipconfig.exe (или Winipcfg.exe в Microsoft Windows 95) — выводит информацию о конфигурации IP и позволяет освобождать и обновлять IPадреса, выделенные DHCP;
• Netstat.exe — выводит таблицу TCP-соединений, таблицу прослушиваемых портов UDP и статистику протокола IP;
• Route.exe — выводит и редактирует таблицы маршрутизации;
Ш Агр.ехе — выводит и редактирует используемые протоколом разрешения адресов (address resolution protocol, ARP) таблицы трансляции IP-ад- ресов в физические.
Функции, описанные в этом приложении, доступны в основном в Windows 98 и Windows 2000, некоторые — и в Windows NT 4 с Service Pack 4 (или более поздним), но ни одна не доступна в Windows 95. При обсуждении каждой функции будет указываться соответствующая платформа. Прототипы для всех функций, описанных в приложении, определены в файле Iphlpapi.h. При компоновке приложения необходимо подключать библиотеку Iphlpapi.lib.
Утилита Ipconfig поставляет два блока информации: о конфигурации IP и о параметрах IP для каждого сетевого адаптера, установленного на данном компьютере. Чтобы получить информацию о конфигурации IP, воспользуйтесь функцией GetNetworkParams:
DWORD GetNetworkParams( PFIXED_INFO pFixedlnfo, PULONG pOutBufLen
Параметр pFixedlnfo — указатель на буфер, куда будет помещена структура FIXED JNFO с информацией о конфигурации IP. Параметр pOutBufLen — указатель на переменную, задающую размер буфера, который передается через первый параметр. Если этого размера окажется не достаточно, функция
550 Приложение В Вспомогательные функции IP
GetNetworkParams вернет значение ERROR_BUFFER OVERFLOW и определит значение параметра pOutBuJLen, равным необходимому размеру буфера.
Источник