Поделиться через


структура CSADDR_INFO (nspapi.h)

Структура CSADDR_INFO содержит сведения об адресе сокетов Windows для сокета, сетевой службы или поставщика пространства имен.

Синтаксис

typedef struct _CSADDR_INFO {
  SOCKET_ADDRESS LocalAddr;
  SOCKET_ADDRESS RemoteAddr;
  INT            iSocketType;
  INT            iProtocol;
} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;

Члены

LocalAddr

Тип: SOCKET_ADDRESS

Локальный адрес сокетов Windows.

В клиентском приложении передайте этот адрес в функцию привязки , чтобы получить доступ к сетевой службе.

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

RemoteAddr

Тип: SOCKET_ADDRESS

Удаленный адрес сокетов Windows.

Этот удаленный адрес используется несколькими способами:

  • Этот удаленный адрес можно использовать для подключения к службе с помощью функции connect . Это полезно, если приложение выполняет операции получения отправки/, использующие протоколы, ориентированные на подключение.
  • Этот удаленный адрес можно использовать с функцией sendto при обмене данными по протоколу без подключения (datagram). Если вы используете протокол без подключения, например UDP, sendto обычно является способом передачи данных в удаленную систему.

iSocketType

Тип: INT

Тип сокета Windows. Возможные значения для типа сокета определяются в файле заголовка Winsock2.h .

В следующей таблице перечислены возможные значения, поддерживаемые для сокетов Windows 2.

Значение Значение
SOCK_STREAM
Сокет потока. Это протокол, который отправляет данные в виде потока байтов без границ сообщений. Этот тип сокета предоставляет виртуационные, надежные двусторонние потоки байтов на основе подключений с механизмом передачи данных OOB. Этот тип сокета использует протокол TCP для семейства интернет-адресов (AF_INET или AF_INET6).
SOCK_DGRAM
Сокет датаграммы. Этот тип сокета поддерживает датаграммы, которые являются ненадежными буферами фиксированной (обычно небольшой) максимальной длины без подключения. Этот тип сокета использует протокол UDP для семейства адресов Интернета (AF_INET или AF_INET6).

Службы используют функцию recvfrom для получения датаграмм. Функции прослушивания и принятия не работают с датаграммами.

SOCK_RDM
Сокет надежной датаграммы сообщений. Этот тип сокета сохраняет границы сообщений в данных. Примером этого типа является реализация протокола прагматической общей многоадресной рассылки (PGM) в Windows, которую часто называют надежным многоадресным программированием.
SOCK_SEQPACKET
Сокет потока последовательного пакета. Этот тип сокета предоставляет пакет псевдопотока на основе датаграмм.

iProtocol

Тип: INT

Используемый протокол. Возможные параметры параметра протокола относятся к указанному семейству адресов и типу сокета. Возможные значения определяются в файлах заголовков Winsock2.h и Wsrm.h .

На Windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и этот параметр может быть одним из значений типа перечисления IPPROTO, определенного в файле заголовка Ws2def.h. Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Winsock2.h и никогда не должен использоваться напрямую.

В приведенной ниже таблице перечислены общие значения для протокола , хотя возможны и многие другие значения.

protocol Значение
IPPROTO_TCP
6
Протокол TCP. Это возможное значение, если семейство адресов AF_INET или AF_INET6 а элемент iSocketTypeSOCK_STREAM.
IPPROTO_UDP
17
Протокол UDP. Это возможное значение, если семейство адресов AF_INET или AF_INET6 , а член iSocketTypeSOCK_DGRAM.
IPPROTO_RM
113
Протокол PGM для надежной многоадресной рассылки. Это возможное значение, если семейство адресов AF_INET а член iSocketTypeSOCK_RDM. На Windows SDK, выпущенном для Windows Vista и более поздних версий, это значение также называется IPPROTO_PGM.

Комментарии

Функция GetAddressByName получает сведения об адресе сокетов Windows с помощью CSADDR_INFO структур.

Функция getsockopt , вызываемая с параметром сокета SO_BSP_STATE , извлекает структуру CSADDR_INFO для указанного сокета.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть nspapi.h (включая Nspapi.h)

См. также раздел

GetAddressByName

SOCKET_ADDRESS

SO_BSP_STATE

bind

connect;

getsockopt

Recv

send

Sendto