рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Какие функции используются для получения и отправки данных.

Какие функции используются для получения и отправки данных. - раздел Информатика, WinSock Первая Функция, Необходимая Для Большинства Сетевых Программ, — Listen. Когда...

Первая функция, необходимая для большинства сетевых программ, — listen. Когда серверная программа открыла порт и ожидает соединения со стороны клиента, то она должна вызвать эту функцию. Функция служит для начала прослушивания порта на случай подключения к нему со стороны клиента. Вот так выглядит эта функция в WinSock2:

function listen( s: TSocket; backlog: Integer ): Integer; stdcall;

o Первый параметр s — дескриптор гнезда или сокет.

o Второй параметр backlog — максимально допустимое число запросов, ожидающих обработки. Если этот параметр равен SOMAXCONN, то ядро са­мо установит максимально возможное для него значение.

В большинстве случаев параметр blocklog зависит от установленного в системе параметра "максимальное количество подключений". Если вы используете Windows 95/98, то этот параметр регулируется в настройках сети.

Следующая функция называется accept. Она служит для подтверждения соединения сервером. Эта функция принимает запросы на подключение, поступающие на вход процесса-сервера:

function accept ( const s: TSocket; var addr: TSockAddr; var addrlen: Integer ): TSocket; stdcall;

o Первый параметр s — это все тот же дескриптор гнезда/сокета.

o addr — указатель на структуру, в котором ядро возвращает адрес подклю­чаемого клиента.

o addrlen — размер адреса.

После завершения выполнения функции ядро записывает в переменную addrlen длину параметра addr. Функция возвращает новый дескриптор гнезда, отличный от дескриптора s. Процесс-сервер может продолжать слежение за состоянием объявленного гнезда, поддерживая связь с клиентом по отдельному каналу.

 

 

Процесс-клиент   Connect addr
Процесс-сервер   Listen addr

 

Рис. 5.10. Соединение клиента с сервером

Мы закончили рассматривать функции, необходимые вам для соединения клиента и сервера. Теперь мы начнем знакомиться с передачей дан­ных. И первой на очереди стоит функция отправки пакетов, потому что для того, чтобы что-то принять, необходимо сначала отправить. И поможет нам в отправке пакетов функция send.

function send ( s: TSocket; var Buf; len, flags: Integer ) : Integer; stdcall;

Рассмотрим каждый параметр в отдельности:

o s — как всегда, это дескриптор гнезда;

o buf — указатель на посылаемые данные;

o len — размер данных;

o flags — флаги, установки.

Функция возвращает количество фактически переданных байтов.

Параметр flags может содержать значения: MSG_DONTROUTE — определяет, что данные не должны быть подчинены маршрутизации, MSG_OOB — послать данные out-of-band ("через таможню"), если посылаемые данные не учиты­ваются в общем информационном обмене между взаимодействующими про­цессами.

Длина сообщения не должна превышать значения в SO_MAX_MSG_SIZE. Прием данных осуществляется функцией recv:

function recv(s: TSocket; var Buf; len, flags: Integer ): Integer; stdcall;

Параметры практически те же:

o buf — массив для приема данных.

o len — ожидаемый объем данных.

o flags — могут быть установлены таким образом, что поступившее сообщение после чтения и анализа его содержимого не будет удалено из очереди, или настроены на получение данных out-of-band.

· MSG_PEEK — данные будут скопированы в буфер, но не удалены из
входной очереди;

· MSG_OOP — то же, что и в функции send.

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

Для датаграммных версий используются функции sendto и recvfrom. Обе функции работают так же, как и в send и recv, только в качестве дополнительных параметров указываются адреса.

Теперь мы научились получать соединения, посылать данные, осталось только научиться закрывать соединения. Функция shutdown закрывает гнездовую связь.

 

 

– Конец работы –

Эта тема принадлежит разделу:

WinSock

Давайте сразу напишем пример который будет инициализировать WinSock и выводить на экран информацию о нем Создайте в Delphi новый проект... Теперь к нему надо подключить заголовочные файлы WinSock второй вер сии Для... Подключение заголовочных файлов...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Лекция 10«Сетьнанизкомуровне».
Существующие программы тестовой диагностики сети выполняют следующие типы провеок: 1.Проверка работы каналов типа «клиент-сервер», т.е. проверка аппаратной и программной частей по соединен

Основные функции WinSock.
Библиотека WinSock состоит из одного лишь файла Winsock.dll. Она очень хорошо подходит для создания простых приложений, потому что в ней реа­лизовано все необходимое для создания соединения и прием

Инициализация WinSock.
Самое первое, что надо сделать — инициализировать библиотеку (для UNIX-подобных ОС это не нужно делать). Для этого необходимо вызвать функцию WSAStartup. У нее есть два параметра: ð Ве

Получение информации о сокетах.
Попробуем инициализировать библиотеку WinSock. Для этого перенесите на созданную нами форму три строки ввода и кнопку. После этого создайте обработчик события Onclick для кнопки и напишите там след

Подготовка разъема.
Прежде чем производить соединение с сервером, надо еще подготовить socket к работе. Этим и займемся. Для подготовки нужно выполнить функ­цию socket, у которой есть три параметра. □ Т

Синхронность/асинхронность.
Разница в этих двух режимах следующая. Синхронная работа: когда вы вызываете функцию, то программа останавли­вается и ждет полного ее выполнения. Допустим, что вы запросили соеди­нение с с

Соединение.
Сокет готов, а значит можно произвести соединение с сервером. Для этого в библиотеке WinSock есть функция connect. У этой функции есть три пара­метра: □ Переменная-сокет, которую мы

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги