У меня есть проблема с Boost :: asio :: ip :: tcp :: iostream. Я пытаюсь отправить около 20 сырых байтов. Проблема заключается в том, что эта полезная нагрузка на 20 байтов разделена на два пакета TCP с 1 байтом, затем 19 байтов. Простая проблема, почему это происходит, я понятия не имею. Я пишу это для устаревшего бинарного протокола, который очень требует, чтобы полезная нагрузка соответствовала одному пакету TCP (стон). < /p>
Вставка всего источника из моей программы было бы длинным и чрезмерно сложным, я разместил функциональную проблему только в пределах 2 функций здесь (протестировано, это воспроизводит проблему); < /p>
#include
// BEGIN cygwin nastyness
// The following macros and conditions are to address a Boost compile
// issue on cygwin. https://svn.boost.org/trac/boost/ticket/4816
//
/// 1st issue
#include
/// 2nd issue
#ifdef __CYGWIN__
#include
#ifdef cfgetospeed
#define __cfgetospeed__impl(tp) cfgetospeed(tp)
#undef cfgetospeed
inline speed_t cfgetospeed(const struct termios *tp)
{
return __cfgetospeed__impl(tp);
}
#undef __cfgetospeed__impl
#endif /// cfgetospeed is a macro
/// 3rd issue
#undef __CYGWIN__
#include
#define __CYGWIN__
#endif
// END cygwin nastyness.
#include
#include
#include
typedef boost::asio::ip::tcp::iostream networkStream;
void writeTestingData(networkStream* out) {
*out
Подробнее здесь: https://stackoverflow.com/questions/684 ... -within-th
Полезная нагрузка разделена на два пакета TCP при использовании Boost Asio, когда она вписывается в MTU ⇐ C++
Программы на C++. Форум разработчиков
1745290463
Anonymous
У меня есть проблема с Boost :: asio :: ip :: tcp :: iostream. Я пытаюсь отправить около 20 сырых байтов. Проблема заключается в том, что эта полезная нагрузка на 20 байтов разделена на два пакета TCP с 1 байтом, затем 19 байтов. Простая проблема, почему это происходит, я понятия не имею. Я пишу это для устаревшего бинарного протокола, который очень требует, чтобы полезная нагрузка соответствовала одному пакету TCP (стон). < /p>
Вставка всего источника из моей программы было бы длинным и чрезмерно сложным, я разместил функциональную проблему только в пределах 2 функций здесь (протестировано, это воспроизводит проблему); < /p>
#include
// BEGIN cygwin nastyness
// The following macros and conditions are to address a Boost compile
// issue on cygwin. https://svn.boost.org/trac/boost/ticket/4816
//
/// 1st issue
#include
/// 2nd issue
#ifdef __CYGWIN__
#include
#ifdef cfgetospeed
#define __cfgetospeed__impl(tp) cfgetospeed(tp)
#undef cfgetospeed
inline speed_t cfgetospeed(const struct termios *tp)
{
return __cfgetospeed__impl(tp);
}
#undef __cfgetospeed__impl
#endif /// cfgetospeed is a macro
/// 3rd issue
#undef __CYGWIN__
#include
#define __CYGWIN__
#endif
// END cygwin nastyness.
#include
#include
#include
typedef boost::asio::ip::tcp::iostream networkStream;
void writeTestingData(networkStream* out) {
*out
Подробнее здесь: [url]https://stackoverflow.com/questions/6846924/payload-split-over-two-tcp-packets-when-using-boost-asio-when-it-fits-within-th[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия