通訊端(socket)與socket 編程__網路&&通訊

來源:互聯網
上載者:User
位元組序:
主機位元組序(host byte order):不同的主機有不同的位元組序,x86:小端; 網路位元組序(network byte order):大端位元組序; 0. 什麼是通訊端 通訊端是網路進程間的通訊(網路處理序間通訊,又叫 network IPC)介面,進程用該介面能夠與其他進程通訊,無論是否在同一台電腦上, 通訊端是對通訊端點的抽象,就像檔案描述符(file descriptor)是對檔案的抽象表示; 1. 基本概念

socket 可以看成是使用者進程(Application,工作在使用者空間)與核心網路通訊協定棧(核心空間,kernel space)的編程介面(稱為套介面); 以實現使用者空間的應用對核心網路通訊協定棧提供的服務的訪問和調用;



socket 以下的 UDP/TCP、IP、Channel 等即為核心網路通訊協定棧; 2. IPv4 通訊端地址介面

$ man 7 ip

IPv4 通訊端地址結構通常也稱為“網際通訊端地址結構”,以sockaddr_in命名,定義在 <netinet.h>中:

struct sockaddr_in {    sa_family_t    sin_family; /* address family: AF_INET */    in_port_t      sin_port;   /* port in network byte order */    struct in_addr sin_addr;   /* internet address */};/* Internet address. */struct in_addr {    uint32_t       s_addr;     /* address in network byte order */};
AF_INET:代表的是 IPv4 協議;
此外還有 Unix 域協議; Network byte order:網路位元組序; 3. 通用地址結構

使不同協議間的通訊端地址相容。

struct sockaddr {    uint8_t sin_len;    sa_family_t sin_family;    char sa_data[14];}
sin_len:整個 sockaddr 結構體的長度; sin_family:指定該地址家族; sa_data:由 sin_family 決定其形式; 4. 位元組序轉換函式
uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t hostlong);uint16_t ntohs(uint16_t hostshort);
h:host,表示主機(主機位元組序); n:network,表示網路(網路位元組序); s:short,l:long

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.