Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nastik-kum
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 16
#1

Передача данных - C++

23.08.2013, 13:32. Просмотров 427. Ответов 5
Метки нет (Все метки)

Здравствуйте! Подскажите, пожалуйста, как организовать передачу данных, допустим через сокет, с заданной скоростью V_out, например, 15Мб в секунду? Отправляю я пакеты длины 188 байт. Но скорее всего отправлять буду не по одному, а по несколько штук. Предположим, что кол-во пакетов в сообщении n. Как правильно организовать такую отправку в реальном времени?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 13:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача данных (C++):

Передача данных - C++
Можно ли из одной программы в другую передать число или символ?? Если можно то как?:good:

Передача данных в функцию - C++
Подскажите пожалуйста, передаю в функцию набор значений, и пытаюсь производить с ними действия: void poly(const int N, const double...

Передача данных в функции - C++
Расскажите пожалуйста, почему упорно отказывается работать прога? #include <iostream> #include <stdio.h> #include <math.h> ...

Передача данных и сортировка - C++
Сделал шаблонную очередь,но так и не понял как мне передать данные в класс sort и как сделать сортировку строк по алфавиту в этом классе. ...

Передача данных в SD карту - C++
Здравствуйте. Помещаю в этой рубрике потому что знаю что люди разбирающиеся в C++ хорошо понимают в тонкостях организации побитовой...

Передача данных из функции - C++
Есть функция, которая должна считать структуру из файла и передать в основную программу саму структуру и кол-во элементов. Структура: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15550 / 7058 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
23.08.2013, 16:04 #2
Цитата Сообщение от Nastik-kum Посмотреть сообщение
Подскажите, пожалуйста, как организовать передачу данных, допустим через сокет, с заданной скоростью V_out, например, 15Мб в секунду?
Никак. Потому что принимающая сторона может быть не в состоянии читать
данные с такой скоростью.

Цитата Сообщение от Nastik-kum Посмотреть сообщение
Отправляю я пакеты длины 188 байт. Но скорее всего отправлять буду не по одному, а по несколько штук. Предположим, что кол-во пакетов в сообщении n. Как правильно организовать такую отправку в реальном времени?
Пакеты, сообщения... Это все неверно.
Если вы работаете с сокетами, на уровне TCP, там нет таких понятий как "пакет" или "сообщение".
Есть лишь поток байт, возможно разбитый на куски неопределенного размера.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
23.08.2013, 16:21 #3
если отправлять значительно больше одного байта за одну итерацию, т.е скорость будет стремиться к пропускной скорости сети (конечно же если с другой стороны читают), если вам необходимо ограничить скорость, то попробуйте примитивно ограничить скорость отправления, например если отправлять по 1024 байта, то отправив 1024*15 раз остановитесь на определенный промежуток времени )
который равен (1 сек минус время отправления тех 1024*15*1024 байт) вот только есть небольшая проблема с засечением времени хД
0
Nastik-kum
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 16
23.08.2013, 16:24  [ТС] #4
Я работаю с протоколом UDP. Данные передаю датаграммами. Мне необходимо установить определенную скорость отправки датаграмм. Если приемник не будет успевать - я ее уменьшу, но для этого нужно понять как это сделать теоретически. Так сказать составить алгоритм для абстрактных данных.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
23.08.2013, 16:26 #5
Цитата Сообщение от Nastik-kum Посмотреть сообщение
Если приемник не будет успевать
в UDP вы этого не узнаете ))
0
Nastik-kum
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 16
23.08.2013, 16:38  [ТС] #6
Проблема в том, что у меня программа отправляет то, что приняла. Соответственно идет работа с критическим ресурсом, кроме того, принятые данные еще и обрабатывать надо. В итоге выходит, что принимаю я быстрее, чем отправляю, хотя работаю в разных потоках. Сейчас планирую вынести обработку в отдельный поток и он должен по идее независимо работать. Однако тогда у меня начинает слишком часто передавать. Вот я пытаюсь придумать алгоритм, по которому исходя из заданной скорости отправлять определенное кол-во датаграмм.

PS: Знаю, что объясняю сумбурно, но проблема в том, что я как раз не понимаю как это сделать нормально =(
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 16:38
Привет! Вот еще темы с ответами:

Передача данных в system() - C++
здраствуйте). как сделать чтобы программа показывала процессы пользователя имя которого вводится с клавиатуры тоесть программа...

Передача данных в функцию - C++
Добрый день, форумчане! Интересует следующий странно глупый вопрос... Не могу понять! Вот никак. Есть фукция: int solve(int...

Передача данных в функцию - C++
как лучше передавать примитивные типы данных в функцию по ссылке или по значению? В учебниках обычно пишут, что по ссылке. На практике...

Передача данных между классами - C++
Понимаю что это основы, но что-то я запутался... Есть основной класс программы MainWindow. Есть другой класс (назовем его MyClass). В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.08.2013, 16:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru