亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

linux基礎(chǔ)知識總結(jié) linux編程基礎(chǔ)( 二 )


struct sockaddr_in{short int sa_family; /*地址族*/unsigned short int sin_port; /*端口號*/struct in_addr sin_addr; /*IP地址*/unsigned char sin_zero[8]; /*填充0 以保持與struct sockaddr同樣大小*/};2.4.1 網(wǎng)絡(luò)地址的轉(zhuǎn)換
IP地址通常用數(shù)字加點(如192.168.1.a)表示 , 而在struct in_addr中使用的式32位整數(shù)表示 。因此 , Linux提供如下函數(shù)進(jìn)行兩者之間的轉(zhuǎn)換:
inet_aton()函數(shù):所需要頭文件#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>函數(shù)格式:
int inet_aton(const char *cp, struct in_addr *inp);函數(shù)功能:將a.b.c.d字符串形式的IP地址轉(zhuǎn)換成32位網(wǎng)絡(luò)序號IP地址;*cp:存放字符串形式的IP地址的指針*inp:存放32位的網(wǎng)絡(luò)序號IP地址
返回值:轉(zhuǎn)換成功 , 返回非0 , 否則返回0;
inet_ntoa()函數(shù):客戶機端:所需要頭文件#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>函數(shù)格式:
char *inet_ntoa(struct in_addr in);函數(shù)功能:將32位網(wǎng)絡(luò)序號IP地址轉(zhuǎn)換成a.b.c.d字符串形式的IP地址;in:Internet主機地址的結(jié)構(gòu)
返回值:轉(zhuǎn)換成功 , 返回一個字符指針 , 否則返回NULL;
2.4 字節(jié)序
不同的CPU采用對變量的字節(jié)存儲順序可能不同 。
常用的X86結(jié)構(gòu)是小端模式 , 很多的ARM , DSP都為小端模式 , 即內(nèi)存的低地址存儲數(shù)據(jù)的低字節(jié) , 高地址存儲數(shù)據(jù)的高字節(jié) 。
而KEIL C51則為大端模式 , 內(nèi)存的高地址存儲數(shù)據(jù)的低字節(jié) , 低地址存儲數(shù)據(jù)高字節(jié) 。
對于網(wǎng)絡(luò)傳輸來說 , 數(shù)據(jù)順序必須是一致的 , 網(wǎng)絡(luò)字節(jié)順序采用大端字節(jié)序方式 。
下面是四個常用的轉(zhuǎn)換函數(shù):
主機轉(zhuǎn)網(wǎng)絡(luò):
htons()函數(shù):
所需要頭文件:
#include <netinet/in.h>函數(shù)格式:
unsigned short int htons(unsigned short int hostshort)函數(shù)功能:將參數(shù)指定的16位主機(host)字符順序轉(zhuǎn)換成網(wǎng)絡(luò)(net)字符順序;hostshort:待轉(zhuǎn)換的16位主機字符順序數(shù)返回值:返回對應(yīng)的網(wǎng)絡(luò)字符順序數(shù);
htonl()函數(shù):所需要頭文件:#include <netinet/in.h>函數(shù)格式:
unsigned long int htons(unsigned long int hostlong)函數(shù)功能:將參數(shù)指定的32位主機(host)字符順序轉(zhuǎn)換成網(wǎng)絡(luò)(net)字符順序;hostlong:待轉(zhuǎn)換的32位主機字符順序數(shù)返回值:返回對應(yīng)的網(wǎng)絡(luò)字符順序數(shù);
網(wǎng)絡(luò)轉(zhuǎn)主機:
ntohs()函數(shù):所需要頭文件:#include <netinet/in.h>函數(shù)格式:
unsigned short int ntohs(unsigned short int netshort)函數(shù)功能:將參數(shù)指定的16位網(wǎng)絡(luò)(net)字符順序轉(zhuǎn)換成主機(host)字符順序;netshort:待轉(zhuǎn)換的16位網(wǎng)絡(luò)字符順序數(shù)
返回值:返回對應(yīng)的主機字符順序數(shù);
ntohl()函數(shù):所需要頭文件:#include <netinet/in.h>函數(shù)格式:
unsigned long int ntohl(unsigned long int netlong)函數(shù)功能:將參數(shù)指定的32位網(wǎng)絡(luò)(net)字符順序轉(zhuǎn)換成主機(host)字符順序;netshort:待轉(zhuǎn)換的32位網(wǎng)絡(luò)字符順序數(shù)返回值:返回對應(yīng)的主機字符順序數(shù);


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: