国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
htonl(),htons(),inet_addr(),inet_ntoa()函數(shù)_

htonl()

  簡(jiǎn)述:
  將主機(jī)的無(wú)符號(hào)長(zhǎng)整形數(shù)轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
  #include <winsock.h>
  u_long PASCAL FAR htonl( u_long hostlong);
  hostlong:主機(jī)字節(jié)順序表達(dá)的32位數(shù)。
  注釋:
  本函數(shù)將一個(gè)32位數(shù)從主機(jī)字節(jié)順序轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
  返回值:
  htonl()返回一個(gè)網(wǎng)絡(luò)字節(jié)順序的值。
  參見(jiàn):

  htons(), ntohl(), ntohs().

htons()

  簡(jiǎn)述:
  將主機(jī)的無(wú)符號(hào)短整形數(shù)轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
  #include <winsock.h>
  u_short PASCAL FAR htons( u_short hostshort);
  hostshort:主機(jī)字節(jié)順序表達(dá)的16位數(shù)。
  注釋:
  本函數(shù)將一個(gè)16位數(shù)從主機(jī)字節(jié)順序轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
  返回值:
  htons()返回一個(gè)網(wǎng)絡(luò)字節(jié)順序的值。
  參見(jiàn):
  htonl(), ntohl(), ntohs().
  ---------------------------------------------
  簡(jiǎn)單地說(shuō),htons()就是將一個(gè)數(shù)的高低位互換
  (如:12 34 --> 34 12)
  VB表示:
  MsgBox Hex(htons(&H1234))

  顯示值為 3412

inet_addr()

  簡(jiǎn)述:將一個(gè)點(diǎn)間隔地址轉(zhuǎn)換成一個(gè)in_addr。
  #include <winsock.h>
  unsigned long PASCAL FAR inet_addr( const struct FAR* cp);
  cp:一個(gè)以Internet標(biāo)準(zhǔn)“.”間隔的字符串。
  注釋:
  本函數(shù)解釋cp參數(shù)中的字符串,這個(gè)字符串用Internet的“.”間隔格式表示一個(gè)數(shù)字的Internet地址。返回值可用作Internet地址。所有Internet地址以網(wǎng)絡(luò)字節(jié)順序返回(字節(jié)從左到右排列)。
  Internet地址用“.”間隔的地址可有下列幾種表達(dá)方式:
  a.b.c.d,a.b.c,a.b,a
  當(dāng)四個(gè)部分都有定值時(shí),每個(gè)都解釋成一個(gè)字節(jié)數(shù)據(jù),從左到右組成Internet四字節(jié)地址。請(qǐng)注意,當(dāng)一個(gè)Internet地址在Intel機(jī)器上表示成一個(gè)32位整型數(shù)時(shí),則上述的字節(jié)為“d.c.b.a”。這是因?yàn)镮ntel處理器的字節(jié)是從右向左排列的。
  請(qǐng)注意:只有Berkeley支持下述表達(dá)法,Internet其余各處均不支持??紤]到與軟件的兼容性,應(yīng)按規(guī)定進(jìn)行使用。
  對(duì)一個(gè)三部分地址,最后一部分解釋成16位數(shù)據(jù)并作為網(wǎng)絡(luò)地址的最右兩個(gè)字節(jié)。這樣,三部分地址便很容易表示B組網(wǎng)絡(luò)地址,如“128.net.host”.
  對(duì)一個(gè)兩部分地址,最后一部分解釋成24位數(shù)據(jù)并作為網(wǎng)絡(luò)地址的最右三個(gè)字節(jié),這樣,兩部分地址便很容易表示C組網(wǎng)絡(luò)地址,如“net.host”。
  對(duì)僅有一個(gè)部分的地址,則將它的值直接存入網(wǎng)絡(luò)地址不作任何字節(jié)的重組。
  返回值:
  若無(wú)錯(cuò)誤發(fā)生,inet_addr()返回一個(gè)無(wú)符號(hào)長(zhǎng)整型數(shù),其中以適當(dāng)字節(jié)順序存放Internet地址。如果傳入的字符串不是一個(gè)合法的Internet地址,如“a.b.c.d”地址中任一項(xiàng)超過(guò)255,那么inet_addr()返回INADDR_NONE。
  參見(jiàn):

  inet_ntoa().

inet_addr()函數(shù)的實(shí)現(xiàn)

輸入是點(diǎn)分的IP地址格式(如A.B.C.D)的字符串,從該字符串中提取出每一部分,轉(zhuǎn)換為ULONG,假設(shè)得到4個(gè)ULONG型的A,B,C,D,
ulAddress(ULONG型)是轉(zhuǎn)換后的結(jié)果,
ulAddress = D<<24 + C<<16 + B<<8 + A(網(wǎng)絡(luò)字節(jié)序),即inet_addr(const char *)的返回結(jié)果
另外,我們也可以得到把該IP轉(zhuǎn)換為主機(jī)序的結(jié)果,轉(zhuǎn)換方法一樣
A<<24 + B<<16 + C<<8 + D

inet_ntoa()

  簡(jiǎn)述:
  將網(wǎng)絡(luò)地址轉(zhuǎn)換成“.”點(diǎn)隔的字符串格式。
  #include <winsock.h>
  char FAR* PASCAL FAR inet_ntoa( struct in_addr in);
  in:一個(gè)表示Internet主機(jī)地址的結(jié)構(gòu)。
  注釋:
  本函數(shù)將一個(gè)用in參數(shù)所表示的Internet地址結(jié)構(gòu)轉(zhuǎn)換成以“.” 間隔的諸如“a.b.c.d”的字符串形式。請(qǐng)注意inet_ntoa()返回的字符串存放在WINDOWS套接口實(shí)現(xiàn)所分配的內(nèi)存中。應(yīng)用程序不應(yīng)假設(shè)該內(nèi)存是如何分配的。在同一個(gè)線程的下一個(gè)WINDOWS套接口調(diào)用前,數(shù)據(jù)將保證是有效。
  返回值:
  若無(wú)錯(cuò)誤發(fā)生,inet_ntoa()返回一個(gè)字符指針。否則的話,返回NULL。其中的數(shù)據(jù)應(yīng)在下一個(gè)WINDOWS套接口調(diào)用前復(fù)制出來(lái)。
  測(cè)試代碼如下
  include <stdio.h>
  #include <sys/socket.h>
  #include <netinet/in.h>
  #include <arpa/inet.h>
  #include <string.h>
  int main(int aargc, char* argv[])
  {
  struct in_addr addr1,addr2;
  ulong l1,l2;
  l1= inet_addr("192.168.0.74");
  l2 = inet_addr("211.100.21.179");
  memcpy(&addr1, &l1, 4);
  memcpy(&addr2, &l2, 4);
  printf("%s : %s\n", inet_ntoa(addr1), inet_ntoa(addr2)); //注意這一句的運(yùn)行結(jié)果
  printf("%s\n", inet_ntoa(addr1));
  printf("%s\n", inet_ntoa(addr2));
  return 0;
  }
  實(shí)際運(yùn)行結(jié)果如下:
  192.168.0.74 : 192.168.0.74 //從這里可以看出,printf里的inet_ntoa只運(yùn)行了一次。
  192.168.0.74
  211.100.21.179
  inet_ntoa返回一個(gè)char *,而這個(gè)char *的空間是在inet_ntoa里面靜態(tài)分配的,所以inet_ntoa后面的調(diào)用會(huì)覆蓋上一次的調(diào)用。第一句printf的結(jié)果只能說(shuō)明在printf里面的可變參數(shù)的求值是從右到左的,僅此而已。
  參見(jiàn):
  inet_addr().
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ntohs, ntohl, htons,htonl inet_aton等詳解 - lvpw...
網(wǎng)絡(luò)編程相關(guān)【源自多處網(wǎng)絡(luò)博客,未整理】
網(wǎng)絡(luò)函數(shù) htonl ntohl htons ntohs inet
inet_addr 和inet_ntoa函數(shù)作用
關(guān)于in
inet_ntoa使用時(shí)要注意
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服