網路程式設計學習 socket輔助函式 一

2021-06-20 02:42:51 字數 794 閱讀 7576

本文為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 如果連線成功,這時客戶端與伺服器端的連線就建立了。客戶端傳送資料請求,伺服器端接收請求並處理請求,然後把...