1. 程式人生 > >淺析網路程式設計之AF_INET和PF_INET

淺析網路程式設計之AF_INET和PF_INET

在網路程式設計中,建立TCP套接字時,我們使用

socked = socket(AF_INET, SOCK_STREAM, 0);
來建立一個網際(AF_INET)位元組流(SOCK_STREAM)套接字。

AF 表示ADDRESS FAMILY 地址族

PF 表示PROTOCOL FAMILY 協議族

1、在windows系統中,這兩個巨集定義是一樣的,所以使用哪個都沒有關係,在Winsock2.h中:

#define AF_INET 2
#define PF_INET AF_INET
所以在windows中AF_INET與PF_INET完全一樣。

2、在Unix/Linux系統中,在不同的版本中這兩者有微小差別:

對於BSD,是AF

對於POSIX,是PF.

相關推薦

淺析網路程式設計AF_INETPF_INET

在網路程式設計中,建立TCP套接字時,我們使用 socked = socket(AF_INET, SOCK_STREAM, 0);來建立一個網際(AF_INET)位元組流(SOCK_STREAM)套接

Qt網路程式設計QNetworkRequestQNetworkReply例項(四)

設想有如下場景:輸入若干的url,然後依次的下載並存儲到檔案。本案例使用QNetworkRequest和QNetworkReply。原始碼如下: 案例原始碼 標頭檔案 #pragma once //////////////////////////////////

Android網路程式設計sockethttp程式設計的區別

HTTP為短連線         Http協議是建立在TCP協議之上的一種應用。它與TCP連線不同之處在於,客戶端每次請求都需要伺服器返回響應,在請求結束後,會主動釋放連線,從建立連線到關閉連線的過程稱為“一次連線”。由於HTTP每次請求都會釋放連線,因為

Java網路程式設計URLURI

URL和URI URL可以唯一地標識一個資源在Internet上的位置。URL是最常見的URI URI URI的結構: 模式:模式特定部分 常見的模式有: data file ftp http mailto magnet teln

Java網路程式設計URLEncodeURLDecode工具類

import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class EncodeTest {

Qt網路程式設計QTCPSocketQTCPServer例項(二)

設想有如下場景:若干的客戶端與伺服器端建立連線,建立連線後,伺服器端隨機發送字串給客戶端,客戶端列印輸出。該節案例使用TCP程式設計。 伺服器端-單執行緒 標頭檔案 #pragma once ///////////////////////////////////

49.Qt-網路程式設計QTCPSocketQTCPServer(實現簡易網路除錯助手)

在上章 48.QT-網路通訊講解1,我們學習了網路通訊基礎後,本章便來實戰一篇.原始碼正在整理中,等下貼地址. PS:支援客戶端和伺服器,提供原始碼,並且伺服器支援多客戶端連入,並且可以指定與個別客戶端傳送資料,也可以給所有連入的客戶端傳送資料. 1.效果圖所下所示:   如下圖所

洞悉C++網路程式設計tcp/ipsocket api

原文地址:https://blog.csdn.net/libaineu2004/article/details/79020403 TCP(Transmission Control Protocol) 傳輸控制協議 三次握手 TCP是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次

網路程式設計接收端傳送端

package myclass; import java.net.; / 需求:通過UDP傳輸方式,將一段文字資料傳送出去 思路: 1.建立updSocket服務 2.提供資料,並將資料封裝到資料包中。 3.通過socket服務傳送功能,將資料包發出去 4.關閉

linux網路程式設計用socket實現簡單客戶端服務端的通訊(基於TCP)

一、介紹基於TCP協議通過socket實現網路程式設計常用API 1、讀者如果不是很熟悉,可以先看我之前寫的幾篇部落格,有socket,地址結構的理解,更加方便讀者理解 地址分別是: 2、socket(TCP)程式設計API簡介 1)、socket int s

linux網路程式設計用socket實現簡單客戶端服務端的通訊(基於UDP)

1、sendto和recvfrom函式介紹 sendto(經socket傳送資料) 相關函式 send , sendmsg,recv , recvfrom , socket 表頭檔案 #include < sys/types.h >#includ

網路程式設計TCP協議為啥是三次握手四次揮手?

1.在學習TCP協議的時候,總是在強調三次握手,那麼為什麼是三次?而不是兩次或者四次?(強迫症表示黑人問號????) 今天我們就來分析一下為什麼是三次,下圖是一次TCP通訊的時序 在這個例子

網路程式設計每天學習一點點[day6]-----tcp三次握手backlog

先看一副圖:在linux2.2之前:linux核心在底層維護一個由backlog指定大小的佇列。客戶端傳送SYN(第一次握手),服務端收到SYN後,返回一個SYN/ACK(第二次握手),並把連線放入佇列

網路程式設計WCF程式設計:WCF服務客戶端的建立,回撥

1.概念 Windows Communication Foundation(WCF)是由微軟發展的一組資料通訊的應用程式開發介面,可以翻譯為Windows通訊介面。它是.NET框架的一部分,由 .NET Framework 3.0 開始引入。 WCF的終結點有三個要素組成

Android 網路程式設計同步,非同步,阻塞非阻塞

同步:函式沒有執行完不返回,執行緒被掛起;   阻塞:沒有收完資料函式不返回,執行緒也被掛起;  非同步:函式立即返回,通過事件或是訊號通知呼叫者;  非阻塞:函式立即返回,通過select通知呼叫者  同步:函式沒有執行完不返回,執行緒被掛起 阻塞:沒有收完資料函式不返回,執行緒也被掛起 非同步:函

Java網路程式設計Netty拆包黏包-yellowcong

Netty中,解決拆包和黏包中,解決方式有三種 1、在每個包尾部,定義分隔符,通過回車符號,或者其他符號來解決 2、通過定義每個包的大小,如果包不夠就空格填充 3、自定義協議的方式,將訊息分為訊息頭和訊息體,在訊息頭中表示出訊息的總長度,

C語言網路程式設計(伺服器客戶端)

1、 套接字:源IP地址和目的IP地址以及源埠號和目的埠號的組合稱為套接字。其用於標識客戶端請求的伺服器和服務。 常用的TCP/IP協議的3種套接字型別如下所示。 (1)流套接字(SOCK_STREAM): 流套接字用於提供面向連線、可靠的資料傳輸服務。該服務將保證資料能夠實現無差錯、無重複傳送,並按順序接

Boost.Asio C++ 網路程式設計二:同步非同步

       首先,非同步程式設計和同步程式設計是截然不同的。在同步程式設計中,所有的操作都是順序執行的,比如從socket中讀取(請求),然後寫入(迴應)到socket中。每一個操作都是阻塞的。因為操作是阻塞的,所以為了不影響主程式,當在socket上讀寫時,通常會建立一個

linux網路程式設計TCP/IP基礎(二):利用ARPICMP協議解釋ping命令

一、MTU 乙太網和IEEE 802.3對資料幀的長度都有限制,其最大值分別是1500和1492位元組,將這個限制稱作最大傳輸單元(MTU,Maximum Transmission Unit)。如果I

linux網路程式設計socket(十六):通過UNIX域套接字傳遞描述符 sendmsg/recvmsg 函式

void send_fd(int sock_fd, int send_fd) {     int ret;     struct msghdr msg;     struct cmsghdr *p_cmsg;     struct iovec vec;     char cmsgbuf[CMSG_SPACE(