Семинары (1171138), страница 10

Файл №1171138 Семинары (Семинары) 10 страницаСеминары (1171138) страница 102020-04-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Отправить собранному в примере 3 эхосерверу сообщение и получить ответ.Результат выполненияЗадание 1:Структура приложения-клиента TCPWSAStartupsocketconnectsendrecvclosesocketWSACleanup10Изменив исходные коды UDP клиента и примеров 3 и 4, написать TCP клиент дляпоследующей работы с эхо-сервером. Клиент должен считывать из консоли адрес и порт покоторыс сервер принимает соединения (сервер принимает соединения на все свои ip-адресапо порту 777). Отладку клиента производить с приложением sr1.exe.Исходный код TCP клиентаРезультат выполнения11Контрольные вопросы1.2.3.4.5.6.7.8.Понятие сокета?Типы сокетов?Создание сокета?Понятие IP адреса?Связывание сокета?Создание канала связи?Передача данных?UDP-клиент?СПИСОК ЛИТЕРАТУРЫ1. Ватолин Д. С.

Алгоритмы сжатия изображений. Методическое пособие: М.:Издательский отдел факультета Вычислительной Математики и Кибернетики МГУим. М.В.Ломоносова, 1999 г. — 76 с.2. Стивенс У., UNIX: Разработка сетевых приложений. - СПб.: Питер, 20043. Шмидт Д., Хьюстон С. Программирование сетевых приложений на C++. Том1. —Бином-Пресс, 2003.

— С. 304.4. Дейтел Х. М. Как программировать на С++: Пер. с англ. – М.: ЗАО «ИздательствоБИНОМ», 2000 г. – 1024 с.: ил.5. Страуструп Б. Язык программирования С++. Специальное издание: ++: Пер. с англ. –М.: ЗАО «Издательство БИНОМ», 2008 г. – 1104 с. :ил.6. Шилдт Г. Полный справочник по С++: ++: Пер. с англ. – М.: Изд-во Вильямс, 2007 г.– 800 с.: ил.7.

Шилдт Г. С++: Базовый курс: ++: Пер. с англ. – М.: Изд-во Вильямс, 2008 г. – 624 с.:ил.12датаОтчет по лабораторной работе №11«Основы C++, работа с сокетами. Часть2.»ОценкаБонус заподпись(max 5)сложностьЦели работы:Изучение принципов функционированияпрограммированием сокетов и потоков.сетевыхсоединений,ознакомлениесЗадачи работы:-ознакомление с понятием сетевого соединения и сокетов-разработка серверного приложенияКраткий конспект теоретической части (ответы на контрольные вопросы)Понятие сокета___________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Типы сокетов________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Создание сокетов__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Понятие IP адреса_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Связывание сокета____________________ _______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Создание канала связи (клиент/сервер)__________________________________________________________________ _____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Передача данных _________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Понятие callback-фукнции ___________________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________1_____________________________________________________________________________Понятие процесса и потока _________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Клиент-сервер UDP/TCP____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Текстовый чат____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________2Основы C++, работа с сокетами.

Часть2.Пример 1: Создание канала связи: сервер.Если вы собираетесь передавать датаграммные сообщения при помощи протокола негарантированной доставкиUDP , канал связи не нужен. Сразу после создания сокетов и их инициализации можно приступать к передачеданных. Но для передачи данных с использованием протокола TCP необходимо создать канал связи.Со стороны клиента связь устанавливается с помощью стандартной функции connect:int connect (SOCKET s, const struct sockaddr FAR* name, int namelenСервер:сервер переходит в режим ожидания подключений, вызывая функцию "int listen (SOCKET s, int backlog)", где s дескриптор сокета, а backlog - максимально допустимый размер очереди сообщений.извлечение запросов на соединение из очереди осуществляется функцией "SOCKET accept (SOCKET s, structsockaddr FAR* addr, int FAR* addrlen)", которая автоматически создает новый сокет, выполняет связывание ивозвращает его дескриптор, а в структуру sockaddr заносит сведения о подключившемся клиенте (IP-адрес ипорт).

Если в момент вызова accept очередь пуста, функция не возвращает управление до тех пор, пока ссервером не будет установлено хотя бы одно соединение. В случае возникновения ошибки функция возвращаетотрицательное значение.Для параллельной работы с несколькими клиентами следует сразу же после извлечения запроса из очередипорождать новый поток (процесс), передавая ему дескриптор созданного функцией accept сокета, затем вновьизвлекать из очереди очередной запрос и т.д. В противном случае, пока не завершит работу один клиент, северне сможет обслуживать всех остальных.Сервер:после того как соединение установлено, потоковые сокеты могут обмениваться с удаленным узлом данными,вызывая функции "int send (SOCKET s, const char FAR * buf, int len,int flags)" и "int recv (SOCKET s, char FAR*buf, int len, int flags)" для посылки и приема данных соответственно.Функция send возвращает управление сразу же после ее выполнения, независимо от того, получила липринимающая сторона наши данные или нет.Функция же recv возвращает управление только после того, какполучит хотя бы один байт.Работой обоих функций можно управлять с помощью флагов, передаваемых в одной переменной типа intтретьим слева аргументом.

Эта переменная может принимать одно из двух значений: MSG_PEEK и MSG_OOB.Флаг MSG_PEEK заставляет функцию recv просматривать данные вместо их чтения. Просмотр в отличие отчтения не уничтожает просматриваемые данные. Некоторые источники утверждают, что при взведенном флагеMSG_PEEK функция recv не задерживает управления, если в локальном буфере нет данных, доступных длянемедленного получения. Это неверно! Аналогично, иногда приходится встречать откровенно ложноеутверждение о том, что якобы функция send со взведенным флагом MSG_PEEK возвращает количество ужепереданных байт (вызов send не блокирует управления).

На самом деле функция send игнорирует этот флаг!Флаг MSG_OOB предназначен для передачи и приема срочных (Out Of Band) данных. Срочные данные неимеют преимущества перед другими при пересылке по сети, а всего лишь позволяют оторвать клиента отнормальной обработки потока обычных данных и сообщить ему "срочную" информацию. Если данныепередавались функцией send с установленным флагом MSG_OOB, для их чтения флаг MSG_OOB функции recvтакже должен быть установлен.Дейтаграммный сокет также может пользоваться функциями send и recv, если предварительно вызовет connectно у него есть и свои, "персональные", функции: "int sendto (SOCKET s, const char FAR * buf, int len, int flags,const struct sockaddr FAR * to, int tolen)" и "int recvfrom (SOCKET s, char FAR* buf, int len, int flags, structsockaddr FAR* from, int FAR* fromlen)".Они очень похожи на send и recv - разница лишь в том, что sendto и recvfrom требуют явного указания адресаузла, принимаемого или передаваемого данные.

Характеристики

Тип файла
PDF-файл
Размер
788,91 Kb
Материал
Тип материала
Высшее учебное заведение

Список файлов семинаров

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее