unix
struct in_addr; /*32為的位址結構,是網路位元組序*/
struct sockaddr_in s_un_b;
struct s_un_w;
u_long s_addr;
} s_un;
} in_addr, *pin_addr, far *lpin_addr;union的作用是將大括號裡所有的東西的記憶體分配都放在一起。使用的時候只有乙個能使用。可以使s_un.s_addr s_un.s_ub_b s_un.sun_w
我們可以用兩種方式來引用乙個ipv4的套接字位址結構,也叫網際套接字位址結構
假設 struct sockaddr_in serv;
則 serv.sin_addr 和serv.sin_addr.sin_addr都可以引用到ip位址。只不過乙個是引用in_addr是乙個結構體,另乙個in_addr_t是乙個無符號的整數,這點要注意區分.
在實際使用的時候常常有兩種模式 connect(sd, (const struct sockaddr*)&addr, sizeof(addr)); 和connect(sd, (lpsockaddr)&addr, sizeof(addr));
就目前的理解,他倆沒有什麼區別 就是說 const struct sockaddr* 和lpsockaddr 個人理解lp也可以理解成long pointer
下面說一下對主機位元組序和網路位元組序的理解,其實我們不需要知道他們怎麼表示inet_addr(const char* strptr) 如servaddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");
這個函式是將乙個形如"127.0.0.1"字串轉化成乙個網路位元組序;
相反,也有著char far* inet_ntoa(struct in_addr in);可以將乙個網路位元組序轉化成我們常見的字串表示
也有著網路位元組序和主機位元組序轉換的函式如 : htonl() htons() ntohl() ntohs()這幾個其實很好記 h代表著host 主機 n代表net網路 l代表long 四個位元組 s是short 兩個位元組 常用於埠的轉換。
socket wsasocket (
intaf,
inttype,
intprotocol,
lpwsaprotocol_infolpprotocolinfo,
groupg,
dworddwflags
);
引數說明:
type:新
套介面的型別描述。
protocol:
套介面使用的特定協議,如果呼叫者不願指定協議則定為0。
lpprotocolinfo:乙個指向protocol_info結構的指標,該結構定義所建立
套介面的特性。如果本
引數非零,則前三個引數(af, type, protocol)被忽略。
g:保留給未來使用的套接字組。
套介面組的識別符號。
iflags:
套介面屬性描述。
這裡說一下 wsasocket是window所特有的,支援非同步傳輸的socket()
學習心得 python學習心得
自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...
神經網路學習心得
人工智慧 ai 從誕生以來,理論和技術日益成熟,應用領域也不斷擴大。目前人工智慧 ai 已經以雷霆萬鈞之勢從學術界潛入產業界的每乙個角落,其價值之大,可想而知。人工智慧是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識,心理學和哲學。機器學習中的神經網路是研究人工智慧最熱門的方向,而多層複雜...
網路爬蟲學習心得1
這段時間看了唐松老師寫的 python網路爬蟲從入門到實踐 學到許多網路爬蟲方面的知識,也以書裡的實踐專案進行練手。我的第一篇的網路爬蟲心得,就以書裡第五章的實踐 爬蟲實踐 房屋 資料,參考書裡的內容進行練手。實踐專案是獲取安居客 上北京二手房的資料。本專案需要獲取前10頁二手 的名稱 幾房幾廳 大...