.
Tuesday 22nd of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Получение локального и удаленного адресов сокета
загрузка...

Уже было сказано, что вновь созданные процессы наследуют набор открытых сокетов от процесса, который их создал. Иногда только что созданному процессу нужно определить адрес получателя, к которому подключен сокет, а также локальный адрес сокета. Подобную информацию можно получить с помощью таких функций, как getpeername и getsockname. Несмотря на их названия, обе функции имеют дело с тем, что мы понимаем под словом "адрес".

Чтобы определить адрес удаленного получателя (peer), к которому подключен сокет, программа должна вызвать функцию getpeername. Она имеет следующий синтаксис: getpeername(сокет, адрес-получателя, длина-адреса)

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

Два дополнительных параметра, адрес-отправителя и длина-адреса, представляют собой указатель на адресную структуру сокета, куда помещается адрес отправителя, и целое число, определяющее длину адреса. Получив сообщение, операционная система помещает адрес его отправителя в область памяти, определяемой параметром адрес-отправителя. Длина адреса отправителя указывается в качестве параметра длина-адреса. Обратите внимание, что в описанной выше функции вывода sendto формат адреса получателя совпадает с форматом адреса отправителя, генерируемым функцией reevfrom. Это сделано для удобства отправки ответных сообщений.

Последняя используемая для ввода функция под названием reevmsg аналогична функции вывода sendmsg. Функция reevmsg функционирует подобно функции reevfrom, но для ее выполнения необходимо меньшее количество параметров. Она имеет следующий синтаксис: reevmsg(сокет, адрес-структуры, флажки)

Здесь параметр адрес-структуры задает адрес структуры, где хранится адрес буфера для помещения входящего сообщения, а также место для адреса отправителя. Структура, создаваемая функцией reevmsg, совпадает со структурой, используемой в функции sendmsg, что позволяет им успешно функционировать в паре.


загрузка...
 

Самое популярное:

Наши партнеры

bottom

карта сайта