socket程式設計(一)

2021-08-02 17:12:05 字數 1756 閱讀 1897

(1)socket可以看成是使用者程序與核心網路協議的程式設計介面。

(2)socket不僅可以用於本機的程序間通訊,還可以用於網路不同主機的程序間通訊。異構架構可以不同(手機pc)

ipv4套介面位址結構通常也稱為「網際套接字位址結構」,它以sockaddr_in命名,定義在標頭檔案中

struct sockaddr_in ;

man 7 ip

位元組序(1)大端位元組序

最高有效位(msb:most significant bit)儲存於最低記憶體位址處,最低有效位(lsb:lowest significant bit)儲存於最高記憶體位址處。

(2)小端位元組序

最高有效位(msb:most significant bit)儲存於最高記憶體位址處,最低有效位(lsb:lowest significant bit)儲存於最低記憶體位址處。

主機位元組序

不同的主機有不同的位元組序,如x86為小端位元組序,motorola 6800為大端位元組序,arm位元組序是可配置的。

網路位元組序

網路位元組序規定為大端位元組序。

uint32_t htnol(uint32_t hostlong);

uint16_t htnos(uint16_t hostshort);

uint32_t ntnol(uint32_t netlong);

uint16_t ntnol(uint16_t netshort);

說明:h代表host;n代表network;s代表short;l代表long

流式套接字(sock_stream)

提供面向連線的,可靠的資料傳輸服務,資料無差錯,無重複的傳送,且按傳送順序接收。

資料報式套接字(sock_dream)

提供無連線服務。不提供無措保證,資料可能丟失或重複,並且接收順序混亂。

原始套接字(sock_raw)

linux下埠的劃分使用是由iana(internet assigned numbers authority,網際網路已分配數值權威機構)維護的,埠號被劃分為3個段。

1、0~1023,這些埠有iana分配和控制,可能的話,相同埠號就分配給tcp、udp和sctp的同一給定服務。如80埠被賦予web服務

2、1024~49151,這些埠不受iana控制,不過由iana登記並提供他們的使用情況清單,已方便整個群體。相同埠號也分配給tcp和udp的同一給定服務。如6000~6003埠分配給這兩種協議的x window伺服器。

3、49152~65535,動態埠。iana不管這些埠,就是我們所說的臨時埠。(49152這個魔數是65536的四分之三)。

socket程式設計(一)

include include pragma comment lib,ws2 32.lib using namespace std int main int argc,char argv 建立套接字 socket slisten socket af inet,sock stream,ipproto ...

socket程式設計(一)

1.socket可以看成是使用者程序與核心網路協議棧的程式設計介面。2.socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。底層那部分已經被核心實現了,也就是tcp ip協議棧已經屬於核心的一部分了,應用層是使用者要實現的,它屬於使用者程序的部分,也就是工作在使用者空間,...

Socket程式設計(一)

class program endpoint point new ipendpoint address,7788 封裝ip和埠號 server.bind point 3.開始監聽,等待客戶端做連線 server.listen 100 最大連線數是100 console.writeline serve...