套接字数据(char)c ++的十六进制表示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了套接字数据(char)c ++的十六进制表示相关的知识,希望对你有一定的参考价值。
嗨,我正在使用C ++编写数据包嗅探器。它现在正在工作,但我收到一个字符缓冲区,我想以十六进制表示在屏幕上显示数据包数据。
我已经研究过char到十六进制的转换,但是当分组数据有一个带有扩展的ascii代码的字符,比如像'ê'字符或者其他像这样的字符串时,我有一个问题。当发生这种情况时,根据www.asciitohex.com中的转换,'ê'字符显示为{0xA8,0xBA},有时像{0xBA},而不像{0xC3,0xAA}。
int WINAPI send(SOCKET s, const char* buf, int len, int flags)
{
//do the conversion of socket data here
return pSend(s, buf, len, flags);
}
答案
你没有“像'ê'字符那样的扩展ascii代码的字符”。你只有一个炭。您的问题来自将二进制文件转换为字符串,然后尝试将其转换为十六进制。只需直接从源字节数组转换数据。
以上是关于套接字数据(char)c ++的十六进制表示的主要内容,如果未能解决你的问题,请参考以下文章