一、ip位址
(1)ip的概念:
internet protocol
網路之間互連的協議
也就是為計算機網路相互連線進行通訊而設計的協議。在
網際網路中,它是能使連線到網上的所有計算機網路實現相互通訊的一套規則,規定了
計算機在網際網路上進行通訊時應當遵守的規則。任何廠家生產的計算機系統,只要遵守ip協議就可以與
網際網路互連互通。
ip位址
具有唯一性,根據使用者性質的不同,可以分為5類。
(2)ip的分類:
(3)ip位址的轉換:
inet_aton函式
#include
#include
#include
int inet_aton(const char *cp, struct in_addr *inp);
將strptr所指的字串轉換成32位的網路位元組序二進位制。
inet_addr函式
in_addr_t inet_addr(const char *cp);
功能同上,返回轉換後的位址。
inet_ntoa函式
char *inet_ntoa(struct in_addr in);
將32位的網路位元組序二進位制位址轉換成點分十進位制的字串。
二、埠號
埠號的概念:
在網路技術中,埠(port)包括邏輯埠和物理埠兩種型別。物理埠指的是物理存在的埠。由於物理埠和邏輯埠數量較多,為了對埠進行區分,將每個埠進行了編號,這就是埠號。
為了區分一台主機接收的資料報應該轉交那個程序來處理,用埠號來區分。
埠號一般由iana(internet assigned numbers authority)管理
埠號唯一的確定乙個主機裡的某個程序,
ip位址唯一的確定乙個主機的
ip+port 唯一的確定浩瀚的網路中唯一的一台主機上的唯一的乙個程序
三、位元組序
位元組序概念:即位元組在電腦中存放時的序列與輸入(輸出)時的序列是先到的在前還是後到的在前。
小端序:低序位元組儲存在低位址。tntel amd等採用
大端序:高序位元組儲存在低位址。arm motorola 採用
網路位元組序:
使用統一的位元組順序,避免相容新問題。
使用的位元組序轉換函式:
h host 主機
ton network 網路
l long 4個位元組
s short 2個位元組
htons 主機位元組序---》網路位元組序 2個位元組
htonl
ntohs
ntohl
四、socket簡介:
網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。
建立網路通訊連線至少要一對埠號(socket)。socket本質是程式設計介面(api),對tcp/ip的封裝,tcp/ip也要提供可供程式設計師做網路開發所用的介面,這就是socket程式設計介面。作為bsd unix的
程序通訊
機制,取後一種意思。通常也稱作"
套接字 ",用於描述ip位址和埠,是乙個通訊鏈的控制代碼,可以用來實現不同虛擬機器或不同計算機之間的通訊。在internet上的
主機 一般執行了多個服務軟體,同時提供幾種服務。每種服務都開啟乙個socket,並繫結到乙個埠上,不同的埠對應於不同的服務。
socket型別:
socket型別有sock_stream、sock_dgram、sock_raw
流式socket(sock_stream)是一種面向連線的socket,針對於面向連線的tcp服務應用。
資料報式socket(sock_dgram)是一種無連線的socket,對應於無連線的
udp 服務應用。
原始套接字socket_raw 可以對比較低層次協如ip icmp 直接訪問。
網路程式設計 2 網路程式設計三要素
指網際網路協議位址 internet protocol address 俗稱ip。ip位址用來給乙個網路中的計算機裝置做唯一的編號。假如我們把 個人電腦 比作 一台 的話,那麼 ip位址 就相當於 號碼 inetaddress ip位址分類 ipconfig ping 空格 ip位址 ping 22...
網路程式設計2 網路程式設計之位元組序
1.什麼是位元組序 位元組序是指多位元組資料在計算機記憶體中儲存或者網路傳輸時各位元組的儲存順序。2.常見的位元組序 a little endian 將低序位元組儲存在起始位址 小端位元組序 b big endian 將高序位元組儲存在起始位址 大端位元組序 例子1 在記憶體中雙字0x0102030...
python 2 網路程式設計
訪問某網域名稱的過程 以www.baidu.com 為例 1.先要知道預設閘道器的mac 1.1 使用arp獲取預設閘道器的mac位址 1.2.組織資料傳送給預設閘道器 ip為dns伺服器的ip,但是mac位址是預設閘道器的mac位址 1.3.預設閘道器擁有 資料的能力,把資料 給路由器 1.4.路...