![]() |
||||||||||||||||
1 | ||||||||||||||||
Баг asio? или баг TCP стека?08.04.2011, 14:50. Показов 10751. Ответов 5
Метки нет Все метки)
(
всем привет.
повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента, сохраняю отправляемые массивы в файл, чтоб убедится в том, что массивы не портятся. так и есть. массивы не искаженны: на стороне сервера, так же, сохраняю принятые массивы. но тут, массив приходит искаженным: от снифф этого участка, tcpdump`ом, на стороне клиента: а это на стороне сервера: на стороне клиента, как раз в то место где данные искаженны, добавлены какие-то данные. не мои. видно, что на стороне сервера, массив, после прочтения при помощи asio, уже испорчен. но tcpdump показывает что массив пришел целым. я в замешательстве ![]() еще более странно то, что если третьим аргументом клиенту передать "1" - то между асинхронными записями будет использоваться sleep() в 1мс - что полностью решает проблему. но такое решение не подходит. выложу код в тему, в надежде, что кто-то внесет ясность в ситуацию. клиент:
сервер:
общий хидер:
всем спасибо. зы во вложении, архив с исходниками и Makefile`ом. проверено на gcc-linux и на mingw32. asiotest2.zip
0
|
|
08.04.2011, 14:50 | |
Ответы с готовыми решениями:
5
Баг или так задумано? Фишка с кодировкой файлов компиляции Баг или особенность? XE3 баг или кривые руки?
|
![]() |
|
08.04.2011, 22:48 [ТС] | 5 |
вот что еще странно...
в один прекрасный момент, сервер принимает это: в первой строке сверху - все хорошо. во второй и третьей строке, вместо завершающего нуля, вставлен символ c в четвертой строке, символа c вначале, попросту нет. у кого-то есть мысли по этому поводу?
0
|
![]() |
|
09.04.2011, 20:03 [ТС] | 6 |
![]() Решение
баг распознан и ликвидирован.
как оказалось, это вовсе не баг, а неправильное использование функций asio. в примечании к async_write() есть такое: а оказалось, что их нельзя вызывать до тех пор, пока не будет вызван хэндлер предыдущей. всем спасибо.
3
|
09.04.2011, 20:03 | |
Помогаю со студенческими работами здесь
6
баг или что-то другое? WinAPI SetTextJustification+TextOutW. Баг или фича? std::regex : баг на сайте или баг компилятора? Баг в программе. Без цикла работает нормально. С циклом выдает баг Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |