本文為unp第三章學習筆記
一,ipv4位址結構:
struct in_addr;
struct sockaddr_in
;
其中sin_zero沒有用到,不過通常將整個struct 用memset置0
sin_family = af_inet(ipv4)
sin_port 為網路位元組,需要用htons轉一下
sin_addr.s_addr需要用位址轉換函式inet_addr轉換
一般來說,各socket函式裡的位址引數型別都是sockaddr*,需要進行強制型別轉換, 其原因是這些函式必須處理不同協議的位址
二,位元組轉換函式
htons, htonl, ntohs,ntohl ; n=net h=host s=short l=long
三,位址轉換函式
用於從點分十進位制形式的字串轉成in_addr_t (uint32_t)
#include
int inet_aton(const char* strptr,in_addr* addr);
in_addr_t inet_addr(const char* strptr);
char* inet_ntoa(struct in_addr inaddr);
個人理解 a=ansi c str, n=net
其中1和2等效,將字串轉成in_addr 或in_addr_t 好像2更常用, 3相反
函式1很蛋疼: 執行成功return 1, 失敗return 0. 可能這是它用的少的原因吧
網路程式設計學習筆記 socket程式設計
本地的程序間通訊 ipc 有很多種方式,總結為4類 在本地可以通過程序pid來唯一標識乙個程序,但是在網路中這是不可以的。tcp ip協議族幫我們解決了這個問題,網路層的 ip位址 可以唯一標識網路中的主機,而傳輸層的 協議 埠 可以唯一標識主機中的應用程式 程序 這樣利用三元組 ip位址 協議 埠...
Python學習 Socket 網路程式設計
socket簡介 埠號 用來辨別本地通訊程序,乙個本地的程序在通訊時均會占用乙個埠號,不同的程序埠號不同,因此在通訊前必須要分配乙個沒有被訪問的埠號。連線 指兩個程序間的通訊鏈路。socket 函式 python 中,我們用 socket 函式來建立套接字,語法格式如下 socket.socket ...
socket網路程式設計 學習筆記
伺服器端先初始化socket,然後與埠繫結 bind 對埠進行監聽 listen 呼叫accept阻塞,等待客戶端連線。在這時如果有個客戶端初始化乙個socket,然後連線伺服器 connect 如果連線成功,這時客戶端與伺服器端的連線就建立了。客戶端傳送資料請求,伺服器端接收請求並處理請求,然後把...