socket 程式設計之網路位址

2021-06-25 08:53:00 字數 627 閱讀 3217

在用 c/c++ 編寫 socket 程式時,給相關函式傳入網路位址時總是會卡一下,有必要總結一下。

struct   sockaddr  

; // 16 位元組

第二個結構體是 

struct   sockaddr_in   

;  它用到了 struct in_addr 這個結構體,定義如下:

struct   in_addr  

s_un_b;

struct s_un_w;

u_long s_addr; //實際上,在 unix 系統中,in_addr 只有這乙個成員

} s_un;

}; 注意 in_addr 是乙個聯合結構,即,它有著不同的 "view",你可以把它看成任何一種它裡面宣告的型別。畫出其記憶體結構如下:

in_addr 佔4個位元組

我們細看 sockaddr 和 sockaddr_in 這兩個成員,不管它們以 2 位元組,4 位元組,還是 8 位元組的記憶體對齊方式,都是 16 位元組大小。

記憶體對齊可以參看另一篇文章,《記憶體對齊》

網路程式設計之socket

套接字 socket 是乙個抽象層,應用程式可以通過它傳送或接收資料,可對其進行像對檔案一樣的開啟 讀寫和關閉等操作。套接字允許應用程式將i o插入到網路中,並與網路中的其他應用程式進行通訊。網路套接字是ip位址與埠的組合。套接字起源於 20 世紀 70 年代加利福尼亞大學伯克利分校版本的 unix...

網路程式設計之socket

1,socket 通訊 服務端 import socket server socket.socket server.bind 127.0.0.1,8080 server.listen 5 conn,addr server.accept data conn.recv 1024 print data c...

網路程式設計之socket

1 是什麼?socket又稱套接字,是能夠實現程序間通訊的乙個 東西 2 為什麼?socket是對tcp ip協議的乙個封裝,相當於軟體設計模式中的外觀者模式 socket作為按鈕,按鈕內部連線著tcp ip的若干個對應的協議,也其實可以簡單理解為socket內部封裝著與tcp ip參考模型中各層進...