因为计算机只识别二进制数,ASCII码相当是一种规则,将相应的英文字母,汉字,变成相应的二进制数,让计算机识别。
标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;
通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
例如ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
字符串或串(String)是由数字、字母、下划线组成的一串字符,就是用ascii码储存的,一般记为 s=“a1a2···an”。它是编程语言中表示文本的数据类型。
对于字符串str来说,str[0]单元里面就存放了字母a的ASCII码,str[1]单元里面就存放了字母b的ASCII码。
以上是基础知识,现在问题来了。
在上篇介绍的DNS里, recvmsg(dns_fd, &msg, 0)接收数据,而iov[0].iov_base = dns_buf;即接收到的数据放在dns_buf里。
printf("dns_buf=%s\n