ASCII码与128

    技术2022-05-20  33

          前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。      因为1位二进制数可以表示2种状态:0、1;而2位二进制数可以表示4种状态:00、01、10、11;

          依次类推,7位二进制数可以表示128(2的7次方)种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

          if(buffer[i]>128||buffer[i]<0,这个判断接收内容是否是合法的ASCII码,应为ASCII码的范围是1-128。

    参照以下程序(端口信息扫描):

     

          sck_Conn=socket(AF_INET,SOCK_STREAM,0);if(sck_Conn==INVALID_SOCKET){ delete pParam;return 0;}int ddd=connect(sck_Conn,(sockaddr*)&addr,sizeof(addr));if(ddd==SOCKET_ERROR){closesocket(sck_Conn);delete pParam;return 0;}char buffer[256];strcpy(buffer,"");ddd=recv(sck_Conn,buffer,256,0);if(ddd==SOCKET_ERROR){closesocket(sck_Conn);delete pParam;return 0;} if(strcmp(buffer,"")!=0){CString aa="";for(int i=0;i<256;i++){if(buffer[i]>128||buffer[i]<0){buffer[i]='/0';break;}}aa.Format("port:%d  is %s/r/n",portparam1->iPort,buffer); closesocket(sck_Conn);


    最新回复(0)