【服務器通信-socket】——int socket(int domain, int type, int protocol);

#include <sys/types.h>

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

domain:

??? AF_INET 這是大多數用來產生socket的協議,使用TCP或UDP來傳輸,用IPv4的地址

??? AF_INET6 與上面類似,不過是來用IPv6的地址

??? AF_UNIX 本地協議,使用在Unix和Linux系統上,一般都是當客戶端和服務器在同一臺及其上的時候使用

type:

??? SOCK_STREAM 這個協議是按照順序的、可靠的、數據完整的基于字節流的連接。這是一個使用最多的socket類型,這個socket是使用TCP來進行傳輸。

??? SOCK_DGRAM 這個協議是無連接的、固定長度的傳輸調用。該協議是不可靠的,使用UDP來進行它的連接。

??? SOCK_SEQPACKET?該協議是雙線路的、可靠的連接,發送固定長度的數據包進行傳輸。必須把這個包完整的接受才能進行讀取。

??? SOCK_RAW socket?類型提供單一的網絡訪問,這個socket類型使用ICMP公共協議。(ping、traceroute使用該協議)

??? SOCK_RDM 這個類型是很少使用的,在大部分的操作系統上沒有實現,它是提供給數據鏈路層使用,不保證數據包的順序

protocol:

??? 傳0 :表示使用默認協議。

返回值:

??? 成功:返回指向新創建的socket的文件描述符

? ? 失敗:返回-1,設置errno

解釋分析:

socket()打開一個網絡通訊端口,

如果成功的話,就像open()一樣返回一個文件描述符,應用程序可以像讀寫文件一樣用read/write在網絡上收發數據,

如果socket()調用出錯則返回-1。

對于IPv4,domain參數指定為AF_INET。

對于TCP協議,type參數指定為SOCK_STREAM,表示面向流的傳輸協議。

如果是UDP協議,則type參數指定為SOCK_DGRAM,表示面向數據報的傳輸協議。

protocol參數的介紹從略,指定為0即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python基本環境搭配

Python3 環境搭建 | 菜鳥教程 里面有直接跳轉 Fitten Code 按下 Tab 鍵接受所有補全建議&#xff1a; 按下 Ctrl→ 鍵(mac系統為Command→)接收單個詞補全建議&#xff1a; 用戶可通過點擊左上角工具欄中的Fitten Code – 開始對話或者使用快捷鍵CtrlAltC(mac系統為Contr…

C++負載均衡遠程調用學習之HOOK注冊機制

目錄 1.larV0.7-hook流程的說明 2.larV0.7-TCP_server集成鏈接HOOK函數 3.larV0.7-TCP_client集成鏈接HOOK注冊功能 1.larV0.7-hook流程的說明 ### 7.1 數據庫表相關查詢方法實現 ? 我們先實現一些基本的數據表達查詢方法&#xff1a; > lars_dns/src/dns_rout…

Rust 與 Golang 深度對決:從語法到應用場景的全方位解析

一、引言 在軟件開發的快速發展浪潮中&#xff0c;Rust 和 Golang&#xff08;Go 語言&#xff09;脫穎而出&#xff0c;成為開發者熱議的編程語言。Rust 憑借強大的內存安全性與卓越的性能備受贊譽&#xff0c;Golang 則以簡潔的語法和出色的并發處理能力贏得開發者青睞。本文…

C++負載均衡遠程調用學習之訂閱功能與發布功能

目錄 1.lars-DnsV0.1回顧 2.Lars-DnsV0.2-訂閱功能的訂閱模塊分析 3.Lars-DnsV0.2-訂閱模塊的類的單例創建及方法屬性初始化 4.Lars-DnsV0.2-發布功能的實現 5.Lars-DnsV0.2-發布功能的總結 6.Lars-DnsV0.2-訂閱流程復習 7.Lars-DnsV0.2-訂閱模塊的集成 8.Lars-DnsV0.2訂…

SurfSense開源程序是NotebookLM / Perplexity / Glean的開源替代品,連接到外部來源,如搜索引擎

?一、軟件介紹 文末提供程序和源碼下載 雖然 NotebookLM 和 Perplexity 等工具令人印象深刻&#xff0c;并且對于對任何主題/查詢進行研究都非常有效&#xff0c;但 SurfSense 通過與你的個人知識庫集成來提升這種能力。它是一個高度可定制的 AI 研究代理&#xff0c;連接到外…

基于OpenTelemetry的分布式鏈路追蹤Trace?實現(PHP篇)

目錄 引言一、OpenTelemetry是一套可觀測性標準協議二、分布式追蹤&#xff08;?Trace?&#xff09;是OpenTelemetry的核心功能之一三、OpenTelemetry的架構原理四、OpenTelemetry的分布式追蹤&#xff08;?Trace?&#xff09;實踐1、準備PHP環境2、下載SDK3、編寫實例代碼…

探索智能體的記憶:類型、策略和應用

AI Agent 中的記憶&#xff1a;類型、策略和應用 記憶實現是使智能體能夠保持上下文、從過去的交互中學習并做出明智決策的關鍵組成部分。與人類記憶非常相似&#xff0c;智能體記憶允許 AI 系統隨時間存儲、檢索和利用信息&#xff0c;從而為用戶創造更連貫和個性化的體驗。 …

leetcode 2395. Find Subarrays With Equal Sum

題目描述 代碼&#xff1a; class Solution { public:bool findSubarrays(vector<int>& nums) {int len nums.size();if(len <2)return false;unordered_set<int> table;int sum 0;for(int i 1;i < len;i){sum nums[i-1]nums[i];if(table.contains(…

Kubernetes(k8s)學習筆記(七)--KubeSphere 最小化安裝

前情提要 可視化操作面板對于開發、運維絕對是提升工作效率的一大利器&#xff0c;因此很有必要搭建一套可視化操作來管理Kubernetes。 可視化面板有多種&#xff1a; 1.Kubernetes官方提供的默認面板&#xff1a;dashboard&#xff0c;用處不大&#xff0c;放棄&#xff1b…

MCP連接Agent:AI時代的TCP/IP

介紹 2023年&#xff0c;生成式AI爆發。2024年&#xff0c;智能體&#xff08;Agent&#xff09;接棒成為AI新焦點。2025年&#xff0c;智能體似乎已經要開始爆發了。目前的智能體更像一個“單機App”&#xff1a;彼此不了解、無法通信&#xff0c;更不能協作。類似互聯網早期…

交換機工作原理(MAC地址表、VLAN)

目錄 一、交換機的基本工作原理 數據幀的轉發 MAC地址表的作用 交換機的轉發方式 二、VLAN&#xff08;虛擬局域網&#xff09; VLAN的定義 VLAN的作用 VLAN的實現方式 VLAN的幀標記 VLAN的通信 三、交換機與VLAN的結合 四、交換機與VLAN的實際應用場景 交換機是局…

eFish-SBC-RK3576工控板外部RTC測試操作指南

備注&#xff1a; 1&#xff09;測試時一定要接電池&#xff0c;否則外部RTC斷電后無法工作導致測試失敗&#xff1b; 2&#xff09;如果連接了網絡&#xff0c;系統會自動同步NTP時鐘&#xff0c;所以需要關閉自動同步時鐘。 關閉自動同步NTP時鐘方法&#xff1a; 先查看是…

淘寶按圖搜索商品(拍立淘)Java 爬蟲實戰指南

在電商領域&#xff0c;按圖搜索商品功能為用戶提供了更直觀、便捷的購物體驗。淘寶的拍立淘功能更是憑借其強大的圖像識別技術&#xff0c;成為許多開發者和商家關注的焦點。本文將詳細介紹如何利用 Java 爬蟲技術實現淘寶按圖搜索商品功能&#xff0c;包括注冊賬號、上傳圖片…

【Redis】List類型

文章目錄 List的特點介紹lpush&#xff0c;lpushx&#xff0c;rpush&#xff0c;rpushx命令lrange命令lpop和rpoplindex命令linsert命令llen命令lrem 命令ltrim命令lset命令阻塞版本的命令blpop和brpop 命令小結list的內部編碼List的應用場景 List的特點介紹 列表相當于一個數…

QT:qt5調用打開exe程序并獲取調用按鈕控件實例2025.5.7

為實現在 VS2015 的 Qt 開發環境下打開外部 exe&#xff0c;列出其界面按鈕控件的序號與文本名&#xff0c;然后點擊包含特定文本的按鈕控件。以下是更新后的代碼&#xff1a; #include <QCoreApplication> #include <QProcess> #include <QDebug> #include…

基于Jenkins的DevOps工程實踐之Jenkins共享庫

文章目錄 前言Jenkins共享庫結構1、共享庫演示2、知識點補充3、實踐使用共享庫格式化輸出日志4、groovy基礎語法4.1、 什么是 Groovy&#xff1f;4.2、groovy特點4.3、運行方法4.4、標識符4.5、基本數據類型4.5.1、string類型4.5.2、list類型 4.6、函數使用4.7、正則表達式 5、…

【Qt4】Qt4中實現PDF預覽

方案一&#xff1a; 在Qt4中預覽PDF文件&#xff0c;你可以使用多種方法&#xff0c;但最常見和簡單的方法之一是使用第三方庫。Qt本身并沒有內置直接支持PDF預覽的功能&#xff0c;但你可以通過集成如Poppler、MuPDF等庫來實現這一功能。下面我將展示如何使用Poppler庫在Qt4中…

php artisan resetPass 執行密碼重置失敗的原因?php artisan resetPass是什么 如何使用?-優雅草卓伊凡

php artisan resetPass 執行密碼重置失敗的原因&#xff1f;php artisan resetPass是什么 如何使用&#xff1f;-優雅草卓伊凡 可能的原因 命令不存在&#xff1a;如果你沒有正確定義這個命令&#xff0c;Laravel 會報錯而不是提示”重置密碼失敗”用戶不存在&#xff1a;’a…

ai說什么是注解,并以angular ts為例

在編程中&#xff0c;注解&#xff08;Annotation&#xff09; 是一種特殊的語法結構&#xff0c;用于為代碼添加元數據&#xff08;metadata&#xff09;&#xff0c;從而在不修改代碼邏輯的情況下&#xff0c;提供額外的信息或指示編譯器、框架、工具如何處理這些代碼。注解通…

【MySQL】-- 聯合查詢

文章目錄 1. 簡介1.1 為什么要使用聯合查詢1.2 多表聯合查詢時MySQL內部是如何進行計算的 2. 內連接2.1 語法2.2 示例 3. 外連接3.1 語法3.2 示例 4. 自連接4.1 應用場景4.2 示例4.3 表連接練習 5. 子查詢5.1 語法5.2 單行子查詢5.3 多行子查詢5.4 多列子查詢5.5 在from 子句中…