Так что это действительно странная проблема. У меня есть приложение Java, которое действует как сервер, прослушивает и принимает входящие клиентские подключения, а затем считывает данные (XML) из сокета. Используя мой клиентский драйвер Java, все работает отлично. Я получаю сообщения, как и ожидалось. Однако, используя мой клиентский драйвер C++ только для первого сообщения, самый первый символ читается как ASCII 0 (отображается как маленькая коробка). Мы используем стандартный API сокетов в C++, отправляя char* (мы сделали char*, std::string и просто текст в кавычках).
Я использовал Wireshark, чтобы пронюхать пакет, и, конечно же, он там, вне сети. Правда, я не делал того же на клиентском компьютере. Мой аргумент заключается в том, что это действительно не должно иметь значения, но поправьте меня, если это предположение неверно.
Итак, мой вопрос: какого черта? Почему только первое сообщение содержит эти дополнительные предваряющие данные, а все остальные сообщения в порядке? Есть ли какой-нибудь маленький трюк, чтобы заставить вещи работать?