socket套接字你搞清楚了吗

介绍

Socket,一般称之为套接字,用于描述IP地址和端口。可以实现不同程序间的数据通信。

为什么叫做套接字呢?

socket最初被翻译为把socket译为"介质(字)"。不久,ARPANET的socket就被翻译为"套接字",其理由是:

由于每个主机系统都有各自命名进程的方法,而且常常是不兼容的,因此,要在全网范围内硬把进程名字统一起来是不现实的。所以,每个计算机网络中都要引入一种起介质作用的、全网一致的标准命名空间。这种标准名字,在ARPA网中称作套接字,而在很多其他计算机网中称作信口。更确切地说,进程之间的连接是通过套接字或信口构成的。

下面我们通过创建socket来认识一下,一个套接字要具备哪几种要素条件。

socket本身是Linux内核封装的系统调用函数,比如我们在各种编程语言中调用各种网络库或者内置库,它的终点都是调用的socket系统调用。

c 复制代码
#include <sys/socket.h>

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

这里以C语言为例,其他语言都大同小异。

socket参数主要分为三种参数:domain (通信的协议族),type (套接字的类型),protocol (使用的特定协议)。也就是组成socket的三要素。

通信的协议族

常用的协议族如下

详细的协议族可参考 man7.org/linux/man-p...

套接字类型

socket指定协议

列举一些我们经常用到的协议:

通常为0,表示按给定的域和套接字类型选择默认协议。

技术文章持续更新,请大家多多关注呀~~

搜索微信公众号,关注我【 帽儿山的枪手 】

相关推荐
zt1985q2 小时前
本地部署搜索引擎 Yacy 并实现外部访问
运维·服务器·网络·网络协议·搜索引擎
木子墨5162 小时前
系统设计面试 | 实现一个限流器:滑动窗口 → 令牌桶 → 漏桶
java·开发语言·数据结构·数据库·面试·职场和发展
路由侠内网穿透2 小时前
本地部署开源 HTTP 服务器 OpenLiteSpeed 并实现外部访问
运维·服务器·网络·网络协议·http·开源
ppandss12 小时前
JavaWeb从0到1-DAY7-HTTP 请求与响应处理
网络·网络协议·http
源远流长jerry2 小时前
Linux内核之一条tcp到底占用多少内存
linux·运维·服务器·网络·网络协议·tcp/ip
IT召唤狮2 小时前
【One-KVM】开源轻量级 IP-KVM 解决方案,无网远控免费平替 — BIOS 级远程控制
网络协议·tcp/ip·开源
IpdataCloud3 小时前
大数据处理方案:海量日志中的IP归属地如何高效分析?用IP离线库实现批量查询
网络·网络协议·tcp/ip
只要微微辣3 小时前
Vue3 + TS 企业级 WebSocket 封装实战:高可用、自动重连、心跳检测与业务解耦方案
网络·websocket·网络协议
北京盟通科技官方账号4 小时前
【技术深挖】EtherCAT 如何实现超高精度同步?深度解析分布式时钟 (DC)
网络协议·数据传输·ethercat·智能工厂·盟通科技·windows实时·ec-master
鱼子星_4 小时前
【数据结构与算法】OJ题目详解(一)-单链表:从易到难的面试OJ题目
c语言·数据结构·算法·链表·面试·职场和发展