網路程式設計學習心得

2021-06-22 06:49:10 字數 1711 閱讀 5903

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頁二手 的名稱 幾房幾廳 大...