Есть 2 бинарных программмы, общающиеся через локальные tcp-сокеты. Одна из них (сервер) всунута глубоко в android-приложение и её нужно переписать. Всё, что она делает - отвечает одинаковыми сообщениями.
Отловил сообщение через strace и пытаюсь в точности воспроизвести его. Используются sendmsg и recvmsg на обеих сторонах.
Но вот незадача: recvmsg на клиенте пытается принять 8 байт (таково значение iovec_len, а принимает только 6. То есть, strace показывает только 6 байт сообщения и резултат тоже равен 6
Если в sendmsg на написанном сервере указывать 8, то клиент успешно читает 8 байт и его это не устраивает.
Если указать 6, на клиент всё равно принимает 8, причём в последние 2 байта попадает начало сообщения, что его тоже не устраивает.
И ещё: какая-то старая версия strace показывала 8 байт и нули в конце, хотя результат всё равно 6. Видимо, там strace полагался на iovec_len.
Пробовал пробрасывать подключение к android через ssh, что исключает посторонние факторы, через него всё работает, так что дело именно в какой-то хитрой отправке сообщения
tcpdump в обоих случаях выдаёт, что длина сообщения 6.
Ответ на:
комментарий
от mittorn
Ответ на:
комментарий
от Deleted
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум странное поведение... (2004)
- Форум странное поведение DNS (2016)
- Форум Странное поведение memmove (2016)
- Форум Странное поведение роутера. (2016)
- Форум Vim странное поведение. (2016)
- Форум Странное поведение transmission (2017)
- Форум Странное поведение xfce (2016)
- Форум Странное поведение ssh (2017)
- Форум Странное поведение bwbasic (2016)
- Форум dnsmasq странное поведение (2016)