Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба14.doc
Скачиваний:
9
Добавлен:
12.11.2019
Размер:
572.93 Кб
Скачать

6. Контрольные вопросы

  1. Для чего используются сокеты?

  2. Какие разновидности сокетов бывают?

  3. Какие протоколы поддерживают сокеты (виды)?

  4. Обрисуйте в общих словах алгоритм работы сервера и клиента.

  5. Какие версии сокетов наиболее распространены?

  6. Какие решения обычно используются при работе с сокетами?

  7. Какие ОС поддерживают сокеты?

  8. Можно ли использовать сокеты, как средство межплатформенной коммуникации?

  9. Какие сервисы сети Internet можно использовать с помощью сокетов?

Приложения

Приложение 1

1. Коды ошибок различных функций при работе с сокетами

Таблица 1. Коды ошибок функции WSAStartup.

Значение

Описание

WSASYSNOTREADY

Сетевое программное обеспечение не готово для работы

WSAVERNOTSUPPORTED

Функция не поддерживается данной реализацией интерфейса Windows Sockets

WSAEINVAL

Библиотека DLL, обеспечивающая интерфейсe Windows Sockets, не соответствуетверсии, указанной приложением указанной в параметре wVersionRequested

Таблица 2. Коды ошибок функции WSACleanUp.

Значение

Описание

WSANOTINITIALISED

Интерфейс Windows Sockets не был проинициализирован функцией WSAStartup

WSAENETDOWN

Сбой сетевого программного обеспечения

WSAEINPROGRESS

Во время вызыва функции WSACleanup выполнялась одна из блокирующих функций интерфейса Windows Sockets

Таблица 3. Коды ошибок функции socket.

Код ошибки

Описание

WSANOTINITIALISED

Интерфейс Windows Sockets не был проинициализирован функцией WSAStartup

WSAENETDOWN

Сбой сетевого программного обеспечения

WSAEAFNOSUPPORT

Указан неправильный тип адреса

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEMFILE

Израсходован весь запас свободных дескрипторов

WSAENOBUFS

Нет памяти для создания буфера

WSAEPROTONOSUPPORT

Указан неправильный протокол

WSAEPROTOTYPE

Указанный протокол несовместим с данным типом сокета

WSAESOCKTNOSUPPORT

Указанный тип сокета несовместим с данным типом адреса

Таблица 4. Коды ошибок функции closesocket..

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции closesocket необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEINTR

Работа функции была отменена при помощи функции WSACancelBlockingCall

Таблица 5. Коды ошибок функции bind.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAEADDRINUSE

Указанный адрес уже используется

WSAEFAULT

Значение параметра namelen меньше размера структуры sockaddr

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEAFNOSUPPORT

Этот протокол не может работать с указанным семейством адресов

WSAEINVAL

Сокет уже привязан к адресу

WSAENOBUFS

Установлено слишком много соединений

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

Таблица 6. Коды ошибок функции send.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAEACCES

Указанный адрес является широковещательным (broadcast), однако перед вызовом функции не был установлен соответствующий флаг

WSAEINTR

Работа функции была отменена при помощи функции WSACancelBlockingCall

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEFAULT

Параметр buf указан неправильно (он не указывает на адресное пространство, принадлежащее приложению)

WSAENETRESET

Необходимо сбросить соединение

WSAENOBUFS

Возникла блокировка буфера

WSAENOTCONN

Сокет не подсоединен

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

WSAESHUTDOWN

Сокет был закрыт функцией shutdown

WSAEWOULDBLOCK

Сокет отмечен как неблокирующий, но запрошенная операция приведет к блокировке

WSAEMSGSIZE

Был использован сокет типа SOCK_DGRAM (предназначенный для передачи датаграмм). При этом размер пакета данных превышает максимально допустимый для данной реализации интерфейса Windows Sockets

WSAEINVAL

Сокет не был подключен функцией bind

WSAECONNABORTED

Сбой из-за слишком большой задержки или по другой причине

WSAECONNRESET

Сброс соединения удаленным узлом

Таблица 7. Коды ошибок функции listen.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAEADDRINUSE

Указанный адрес уже используется

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEINVAL

Сокет еще не был привязан к адресу или уже находится в подключенном состоянии

WSAEISCONN

Сокет уже находится в подключенном состоянии

WSAEMFILE

Недостаточно дескрипторов файлов

WSAENOBUFS

Нет места для размещения буфера

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

WSAEOPNOTSUPP

Функция listen не работает с сокетом указанного типа

Таблица 8. Коды ошибок функции accept.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAEFAULT

Значение параметра addrlen меньше размера структуры адреса

WSAEINTR

Работа функции была отменена при помощи функции WSACancelBlockingCall

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAEINVAL

Перед вызовом функции accept не была вызывана функция listen

WSAEMFILE

Нет доступных дескрипторов

WSAENOBUFS

Установлено слишком много соединений

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

WSAEOPNOTSUPP

Данный тип сокета нельзя использовать при вызове функций, ориентированных на работу с каналом связи

WSAEWOULDBLOCK

Сокет отмечен как неблокирующий и в настоящее время нет каналов связи, которые нужно устанавливать

Таблица 9. Коды ошибок функции recv.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAENOTCONN

Сокет не подсоединен

WSAEINTR

Работа функции была отменена при помощи функции WSACancelBlockingCall

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

WSAENOTSOCK

Указанный в параметре дескриптор не является сокетом

WSAESHUTDOWN

Сокет был закрыт функцией shutdown

WSAEWOULDBLOCK

Сокет отмечен как неблокирующий, но запрошенная операция приведет к блокировке

WSAEMSGSIZE

Размер пакета данных превышает размер буфера, в результате чего принятый пакет был обрезан

WSAEINVAL

Сокет не был подключен функцией bind

WSAECONNABORTED

Сбой из-за слишком большой задержки или по другой причине

WSAECONNRESET

Сброс соединения удаленным узлом

Таблица 10.

Код ошибки

Описание

WSANOTINITIALISED

Перед использованием функции необходимо вызвать функцию WSAStartup

WSAENETDOWN

Сбой в сети

WSAEINVAL

Сокет не был подключен функцией bind

WSAEINPROGRESS

Выполняется блокирующая функция интерфейса Windows Sockets

Таблица 11.

Код ошибки

Описание

WSAEADDRINUSE

Указанный адрес уже используется

WSAEADDRNOTAVAIL

Указанный адрес не доступен

WSAEAFNOSUPPORT

Для данного сокета нельзя использовать указанное семейство адресов

WSAECONNREFUSED

Попытка установления канала связи была отвергнута

WSAEDESTADDRREQ

Необходимо указать адрес получателя пакета

WSAEFAULT

Неправильно указан параметр namelen

WSAEINVAL

Сокет уже подключен к адресу

WSAEISCONN

Сокет уже подсоединен

WSAEMFILE

Больше нет доступных дескрипторов

WSAENETUNREACH

Из данного узла и в данное время невозможно получить доступ к сети

WSAENOBUFS

Нет места для размещения буфера

WSAENOTCONN

Сокет на подключен

WSAENOTSOCK

Указан дескриптор файла, а не сокета

WSAETIMEDOUT

При попытке установления канала связи возникла задержка во времени

Таблица 12.

Код ошибки

Описание

WSAENETDOWN

Сбой в сети

WSAECONNRESET

Сброс соединения удаленным узлом

WSAECONNABORTED

Сбой из-за слишком большой задержки или по другой причине

Приложение 2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]