Структура программы udp-клиента.
Первые блоки обеих программ одинаковые и предназначены для инициализации библиотеки WS2_32.DLL.
Второй блок программы сервера создает сокет (функция soсket) и устанавливает параметры этого сокета. Следует обратить внимание на параметрSOCK_DGRAMфункцииsocket, указывающий на тип сокета (в данном случае – сокет, ориентированный на сообщения). Для установки параметров сокета, используется функцияbind. При этом говорят, что сокетсвязываютс параметрами. Для хранения параметров сокета вWinsock2 предусмотрена специальная структураSOCKADDR_IN(она тоже присутствует на рисунке). Перед выполнением функцииbind, которая использует эту структуру в качестве параметра, необходимо ее заполнить данными. Пока скажем только, что вSOCKADDR_INхранитсяIP-адрес и номер порта сервера.
В третьем блоке программы сервера выполняется функция recvfrom, которая переводит программу сервера в состояние ожидания, до поступления сообщения от программы клиента (функцияsendto). Функцияrecvfromтоже использует структуруSOCKADDR_IN– в нее автоматически помещаются параметры сокета клиента, после приема от него сообщения. Данные поступают в буфер, который обеспечивает принимающая сторона (на рисунке символьный массивbfrom). Следует отметить, что в качестве параметра функцииrecvfromиспользуется связанный сокет – именно через него осуществляется передача данных.
Четвертый блок программы сервера предназначен для пересылки данных клиенту. Пересылка данных осуществляется с помощью функции sendto. В качестве параметровsendtoиспользует структуруSOCKADDR_INс параметрами сокета принимающей стороны (в данном случае клиента) и заполненный буфер с данными.
Пятые блоки программ сервера и клиента одинаковые и предназначены для закрытия сокета и завершения работы с библиотекой WS2_32.DLL.
Всем блокам программы клиента, кроме второго, есть аналог в программе сервера. Второй блок, в сравнении с сервером, не использует команду bind. Здесь проявляется основное отличие между сервером и клиентом. Если сервер, должен использовать однозначно определенные параметры (IP-адрес и номер порта), то для клиента это не обязательно – емуWindowsвыделяет эфемерный порт. Т.к. инициатором связи является клиент, то он должен точно “знать” параметры сокета сервера, а свои параметры клиент получит отWindowsи сообщит их вместе с переданным пакетом серверу.
- Стек протоколов tcp/ip. Публичные и частные пространства адресов, типы портов. Параметры настройкиTcp/ip.
- Понятие сокета. Основные параметры сокета.
- Интерфейс Nimed Pipe.
- Интерфейс MailSlot.
- Структура программы tcp-сервера.
- Структура программы tcp-клиента.
- Структура программы udp-сервера.
- Структура программы udp-клиента.
- Структура параллельного сервера.
- Структура параллельного сервера. AcceptServer.GarbageCleaner.
- Широковещание. Обнаружение сервера с помощью широковещания.
- Применение символического адреса хоста.
- Основные сетевые утилиты и их назначение.
- Служба dns.
- Служба dhcp.
- Стандарты сообщений Internet.
- Почтовая служба. Протоколы smtp,pop3.
- Протокол http.
- Служба rpCи технологияXml-rpc.
- Nat,proxy-серверы, межсетевые экраны, ремайлеры.
- Web-сервисы:soap,xml,wsdl,uddi.
- Национальная инфраструктура информационной безопасности.