在用 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參考模型中各層進...