Протоколы Internet


Winsock (для UNIX, Windows- и -NT) - часть 16


DWORD WINAPI IcmpSendEcho(

HANDLE IcmpHandle,

/* дескриптор, полученный в результате запроса IcmpCreateFile */

u_long DestAddress,

/* IP адрес точки зондирования */

LPVOID RequestData,

/* указатель на буфер, где лежат данные, подлежащие посылке */

WORD RequestSize,

/* длина этого буфера */

LPIPINFO RequestOptns,

/* указатель на структуру ICMP-опций */

LPVOID ReplyBuffer,

/* указатель на буфер для приема пакета-отклика */

DWORD ReplySize,

/* размер буфера для пакета-отклика */

DWORD Timeout

/* время ожидания отклика в миллисекундах */

);

struct icmp_echo_reply {

/* Структура ICMP-отклика */

u_long Address;

/* адрес отправителя */

u_long Status;

/* код IP-статуса */

u_long RTTime;

/* RTT в миллисекундах */

u_short DataSize;

/* длина пакета-отклика */

u_short Reserved;

/* зарезервировано на будущее */

void FAR *Data;

/* буфер отклика */

struct ip_option_information Options;

/* опции отклика */

}; ICMPECHO, *PICMPECHO, FAR *LPICMPECHO;

struct ip_option_information {

/* Структура опций протокола ICMP */

u_char TTL;

/* Time To Live (используется процедурой traceroute) */

u_char Tos;

/* Type Of Service (тип сервиса; обычно 0) */

u_char Flags;

/* Флаги IP-заголовка (обычно 0) */

u_char OptionsSize;

/* Размер буфера опций (обычно 0, max=40) */

u_char FAR *OptionsData;

/* Буфер опций */

} IPINFO, *PIPINFO, FAR *LPIPINFO;

Приложение может использовать WSAEnumProtocols для определения того, какой транспортный протокол (стек протоколов) поддерживается, и попутно можно получить дополнительную информацию, которая содержится в структуре WSAPROTOCOL_INFO.

В то время как в WinSock 1.1 имеется только одно семейство адресов AF_INET, включающее в себя ограниченное число известных типов соединителей и идентификаторов протоколов, в WinSock 2 это ограничение снято. Информация по WinSock 2 доступна по адресу:

www.stardust.com/winsock/ws_specs.htm

В настоящее время WinSock допускает совмещение по времени нескольких операций ввода/вывода. Такого рода операции возможны только для соединителей, созданных оператором WSASocket с флагом WSA_FLAG_OVERLAPPED=1 (Win32).




Начало  Назад  Вперед