套接字聯網API之一 TCP套接字

2021-07-04 05:44:05 字數 826 閱讀 4502

最近學習了unix網路程式設計, 套接字聯網api, 書中的內容狠經典,很所部分的細節較少較多,主要部分的內容自己經常容易忽略。下面介紹自己理解的最基礎的內容

1.  所有套接字有關的函式出錯時的返回值都是  -1

2. 服務端

1) 建立乙個套接字   int socket(int, int, int);

2) 與位址和埠繫結  int bind(int, const struct sockaddr*, socklen_t );

3) 由主動套接字改為被動套接字int listen(int , int);

4) 等待接受新的套接字 int accept(int, struct sockaddr*, socklen_t);

5) 關閉套接字描述符 int close(int );

3.客戶端

1) 建立乙個套接字   int socket(int, int, int);

2) 可以選擇bind,  也可以不選擇

3) 主動連線服務端的套接字 int connect(int ,struct sockaddr *, socklen_t);

4.關於getsockname, getpeername的使用

一般來講客戶端不需要服務端的ip位址和埠號,  客戶端只使用getsockname得到自己用於連線的ip位址和埠號

服務端的話,可是使用getsockname來獲得自己用於連線的位址(多網絡卡的時候), 埠不用的,因為服務端的埠一般是固定的; 服務端還可以使用getpeername來獲得客戶端的ip位址和埠號,特別是服務端使用exec執行伺服器程式的時候, 只有通過已連線描述符來獲得客戶端的身份,包括ip位址和埠號。

TCP的套接字

摘自 深入理解計算機網路 王達著 機械工業出版社 1.ipv4資料報頭部格式 2.ipv6資料報頭部格式 3.ipv4資料報的封裝與解封裝 4.ipv4資料報的分段與重組 5.arp協議報文格式及arp表 6.arp位址解析原理 7.icmp協議及報文格式 8.ipv6協議族的其它協議 9.tcp的...

TCP套接字程式設計

網路程式設計又稱為套接字程式設計,為了與遠端計算機進行資料傳輸,需要連線到網際網路,而程式設計中的 套接字 就是用來連線該網路的工具。它本身具有連線的含義,還可以表示為兩台計算機之間的網路連線。4.呼叫accept函式受理連線請求 基於tcp的服務端 客戶端 tcp伺服器端預設函式呼叫順序 sock...

TCP套接字程式設計

對於socket不理解的可以檢視 c語言通過socket程式設計實現tcp通訊,linux socket程式設計 socket詳解 先看看程式效果圖 提示如果伺服器,直接通過ctrl z關閉,這樣程式占用的位址不會釋放,需要以下操作 1.ps 檢視程序 2.kill 9 程式pid 強制殺死程序 服...