日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 1.socket編程:socket編程,網(wǎng)絡(luò)字節(jié)序,函數(shù)介紹,IP地址轉(zhuǎn)換函數(shù),sockaddr數(shù)據(jù)結(jié)構(gòu),網(wǎng)絡(luò)套接字函數(shù),socket相關(guān)函數(shù),TCP serv

1.socket編程:socket編程,網(wǎng)絡(luò)字節(jié)序,函數(shù)介紹,IP地址轉(zhuǎn)換函數(shù),sockaddr數(shù)據(jù)結(jié)構(gòu),網(wǎng)絡(luò)套接字函數(shù),socket相關(guān)函數(shù),TCP serv

來源:程序員人生   發(fā)布時(shí)間:2014-09-30 00:53:05 閱讀次數(shù):2662次


1  Socket編程

socket這個(gè)詞可以表示很多概念:

TCP/IP協(xié)議中,“IP地址+TCPUDP端口號(hào)”唯一標(biāo)識(shí)網(wǎng)絡(luò)通訊中的一個(gè)進(jìn)程,“IP

地址+端口號(hào)”就稱為socket

TCP協(xié)議中,建立連接的兩個(gè)進(jìn)程各自有一個(gè)socket來標(biāo)識(shí),那么這兩個(gè)socket組成的socket pair就唯一標(biāo)識(shí)一個(gè)連接。socket本身有“插座”的意思,因此用來描述網(wǎng)絡(luò)連

接的一對(duì)一關(guān)系。

TCP/IP協(xié)議最早在BSD UNIX上實(shí)現(xiàn),為TCP/IP協(xié)議設(shè)計(jì)的應(yīng)用層編程接口稱為socket

API

本章的主要內(nèi)容是socketAPI,主要介紹TCP協(xié)議的函數(shù)接口,最后介紹UDP協(xié)議和UNIX Domain Socket的函數(shù)接口。

11.1socketAPI

2 網(wǎng)絡(luò)字節(jié)序

我們已經(jīng)知道,內(nèi)存中的多字節(jié)數(shù)據(jù)相對(duì)于內(nèi)存地址有大端和小端之分,磁盤文件中的

多字節(jié)數(shù)據(jù)相對(duì)于文件中的偏移地址也有大端小端之分。網(wǎng)絡(luò)數(shù)據(jù)流同樣有大端小端之分,

那么如何定義網(wǎng)絡(luò)數(shù)據(jù)流的地址呢?發(fā)送主機(jī)通常將發(fā)送緩沖區(qū)中的數(shù)據(jù)按內(nèi)存地址從低到高的順序發(fā)出,接收主機(jī)把從網(wǎng)絡(luò)上接到的字節(jié)依次保存在接收緩沖區(qū)中,也是按內(nèi)存地址從低到高的順序保存,因此,網(wǎng)絡(luò)數(shù)據(jù)流的地址應(yīng)這樣規(guī)定:先發(fā)出的數(shù)據(jù)是低地址,后發(fā)出的數(shù)據(jù)是高地址。

    TCP/IP協(xié)議規(guī)定,網(wǎng)絡(luò)數(shù)據(jù)流應(yīng)采用大端字節(jié)序,即低地址高字節(jié)。例如上一節(jié)的UDP

段格式,地址0-116位的源端口號(hào),如果這個(gè)端口號(hào)是10000x3e8),則地址00x03

地址10xe8,也就是先發(fā)0x03,再發(fā)0xe8,這16位在發(fā)送主機(jī)的緩沖區(qū)中也應(yīng)該是低地址存0x03,高地址存0xe8。但是,如果發(fā)送主機(jī)是小端字節(jié)序的,這16位被解釋成0xe803,而不是1000。因此,發(fā)送主機(jī)把1000填到發(fā)送緩沖區(qū)之前需要做字節(jié)序的轉(zhuǎn)換。同樣地,接收主機(jī)如果是小端字節(jié)序的,接到16位的源端口號(hào)也要做字節(jié)序的轉(zhuǎn)換。如果主機(jī)是大端字節(jié)序的,發(fā)送和接收都不需要做轉(zhuǎn)換。同理,32位的IP地址也要考慮網(wǎng)絡(luò)字節(jié)序和主機(jī)字節(jié)序的問題。

 

為使網(wǎng)絡(luò)程序具有可移植性,使同樣的C代碼在大端和小端計(jì)算機(jī)上編譯后都能正常運(yùn)行,可以調(diào)用以下庫函數(shù)做網(wǎng)絡(luò)字節(jié)序和主機(jī)字節(jié)序的轉(zhuǎn)換。

3 函數(shù)介紹

A 依賴的頭文件

#include <arpa/inet.h>

B 函數(shù)聲明

#include <arpa/inet.h>

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

h表示hostn表示networkl表示32位長整數(shù),s表示16位短整數(shù)。

如果主機(jī)是小端字節(jié)序,這些函數(shù)將參數(shù)做相應(yīng)的大小端轉(zhuǎn)換然后返回,如果主機(jī)是大端字節(jié)序,這些函數(shù)不做轉(zhuǎn)換,將參數(shù)原封不動(dòng)地返回。

 

uint32_t htonl(uint32_t hostlong);

名稱:

htonl

功能:

The htonl() function converts the unsigned integer hostlong  from  host byte order to network byte order

頭文件:

#include <arpa/inet.h>

函數(shù)原形:

uint32_t htonl(uint32_t hostlong);

參數(shù):

 

返回值:

 

 

uint16_t htons(uint16_t hostshort);

名稱:

htons

功能:

The htons() function converts the unsigned short integer hostshort from

host byte order to network byte order.

頭文件:

#include <arpa/inet.h>

函數(shù)原形:

uint16_t htons(uint16_t hostshort);

參數(shù):

 

返回值:

 

 

uint32_t ntohl(uint32_t netlong);

名稱:

ntohl

功能:

The ntohl() function converts the unsigned integer netlong from network

byte order to host byte order.

頭文件:

#include <arpa/inet.h>

函數(shù)原形:

uint32_t ntohl(uint32_t netlong);

參數(shù):

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产成人在线看 | 国产一区一一区高清不卡 | 国产自产21区 | 91色综合| 亚洲精品1 | 亚洲嫩草| 国产精品高清一区二区三区 | 欧美一级网址 | 亚洲第一成人久久网站 | 国产精品久久久久久 | 日韩精品不卡 | 哪里有毛片网站 | 亚洲色图第一区 | 在线亚洲一区 | 亚洲色图50p| 最新国产在线视频 | 黄色电影网站在线观看 | 久久久精品国产 | 亚洲一本大道在线 | 久久九九久久九九 | 成人在线免费 | 欧美3 | 欧美日韩a v| 午夜美女视频 | 欧美无乱码久久久免费午夜一区 | 日韩综合久久 | 成人在线免费网站 | 日韩毛片免费看 | 精品一区一区三区新区乱码 | 国产精品污www在线观看 | 国产成人av一区二区三区 | 久久国产精品偷 | 九九九久久国产免费 | 精品国产乱码久久久久 | 久久精品国产亚洲一区二区三区 | 中文字幕二区 | 国产精品178页 | 日本免费视频 | 国产一区二区三区免费视频 | a级毛片观看 | 国产精品18 |