使用ACE在控制台中显示我的数据包的问题

时间:2011-04-10 08:51:11

标签: c++ packet ace

出于调试原因,我想在Console中显示我的传出数据包。 数据包正确到达服务器btw。 但如果我希望它们在发送之前在控制台中显示,那么它只显示任何内容:

    ACE_Message_Block *m_Header;

    ...

    size_t send_len = m_Header->length(); // Size of the Message Block

    char* output = m_Header->rd_ptr();
    printf("Output: %s", output); // Trying to show it in Console
    // Send it
    server.send(m_Header->rd_ptr(), send_len);

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

您发送的数据可能包含0 - 并且您还需要附加换行符。

for (size_t i = 0; i < send_len; ++i) {
  if (output[i]<32) {
    printf("\\x%02hhx", (unsigned char) output[i]);
  } else {
    printf("%c", output[i]);
  }
}
printf("\n");