socket程式設計實踐

2021-09-28 11:40:43 字數 1000 閱讀 9263

建立連線

1.1socket(非常類似於open函式,用來開啟乙個網路連線,如果成功則返回乙個網路檔案描述符(int型別),之後我們操作這個網路連線都通過這個網路檔案描述符)

1.2bind繫結的意思;好比是ioctl

1.3listen監聽

1.4connect連線 (客戶端)

傳送和接收

2.1 send 和 write

2.2 recv 和 read

輔助性函式

3.1 inet_aton (字元轉為32位二進位制)

inet_addr (字元轉為32位二進位制)

inet_ntoa (32位二進位制轉位字元)

3.2 inet_ntop (32位二進位制轉位字元)

inet_pton (字元轉為32位二進位制)

這兩個是ipv4 和 ipv6均可以使用的。

表示ip位址相關資料結構

4.1 都定義在netinet/in.h中(也可以到ubuntu中檢視vi /usr/include/netinet/in.h)

4.2 struct sockaddr 這個結構體是網路程式設計介面中用來表示乙個ip位址的,注意這個ip位址是不區分ipv4和ipv6的(或者說相容ipv4和ipv6的)typedef uint32_t in_addr_t 網路內部用來表示ip位址的型別。

4.3structin_addr

;4.4

struct sockaddr_in

4.5 struct sockaddr 這個結構是linux的網路程式設計介面中用來表示ip位址的標準結構體,bind connect等函式中都需要這個結構體,這個結構體是相容ipv4和ipv6的,在實際程式設計中這個結構會被乙個struct sockaddr_in 或者乙個struct sockaddr_in6 (ipv)所填充。

參考朱老師物聯網大課堂

socket程式設計實踐

socket程式設計 1 函式說明。socket 程式設計的基本函式有 socket bind listen accept send sendto recv 以及 recvfrom 等,其中根據客戶端還是服務端,或者根據使用 tcp 協議還是 udp 協議,這些函式的呼叫流程都有所區別,這裡先對每個...

五 socket實踐程式設計

1 伺服器端程式編寫 1 socket 2 bind 3 listen 4 accept,返回值是乙個fd,accept正確返回就表示我們已經和前來連線我的客戶端之間建立了乙個tcp連線了,以後我們就要通過這個連線來和客戶端進行讀寫操作,讀寫操作就需要乙個fd,這個fd就由accept來返回了。注意...

socket實踐程式設計1

1 伺服器端程式編寫 1 socket 2 bind 3 listen 4 accept,返回值是乙個fd,accept正確返回就表示我們已經和前來連線我的客戶端之間建立了乙個tcp連線了,以後我們就要通過這個連線來和客戶端進行讀寫操作,讀寫操作就需要乙個fd,這個fd就由accept來返回的了。注...