套接字数据(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 ++的十六进制表示的主要内容,如果未能解决你的问题,请参考以下文章

c语言中计算int,float,double,char四种数据类型所能表示的数据范围

数据与C

java jni 调用 c 代码, c 中 unsigned char* 数据 如何传给java?

C语言进阶数据的存储

C语言中 int float double char long short

信息的表示和处理