0

出于调试原因,我想在控制台中显示我的传出数据包。顺便说一句,数据包正确到达服务器。但是,如果我希望它们在发送前在控制台中显示,那么它什么也没有显示:

    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);

有人有想法吗?

4

1 回答 1

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");
于 2011-04-10T08:58:33.183 回答