Linux IPC:套接字(socket)学习小结(一)

本文是Linux IPC系列的第一篇,主要介绍套接字(socket)的基本概念,包括socket的创建、寻址、绑定和连接建立。通过类比电话通信,讲解了如何在不同进程或主机间建立通信通道。文中详细阐述了socket函数、寻址过程、bind函数和connect函数在通信中的作用,并提及了服务器端的listen和accept函数。
摘要由CSDN通过智能技术生成

Linux IPC:套接字(socket)学习小结(一)

最近正在进行入职培训,所以一直在死磕《APUE》和《UNP》这两本书来学习Linux进程间通信,打算写几篇相关博文就权当一个笔记来记录这段时期的学习心得了


Unix系统提供的很多经典进程间通信机制(IPC)如Pipe、消息队列、共享内存等都是面向同一台计算机上运行的进程(相关进程)之间,所以套接字(socket)存在便是为了允许在不相关的进程(或是不同主机)间创建类似管道的连接。在《Unix/Linux编程实践教程》中将socket通信比喻为打电话查询时间服务的过程,我觉得甚为形象,所以这里也借用了这个类比。

socket

Socket原意便是插座的意思,在进程通信机制中被定义为通信端点的抽象,他在Unix系统中被当做一种文件描述符,可用read和write对其进行处理(这也正如打电话,我们从电话机中发送信号和接受信号)。

下面为socket函数原型:

include <sys/socket>
int socket (int domain, int type, int protocol);     
//成功则返回socket文件描述符,失败则返回-1

第一个参数domain(域)是确定通信特性,包括地址的格式;

描述
AF_INET IPv4因特尔网
AF_INET6 IPv6因特尔网
AF_UNIX Unix域
AF_UPSPEC 未指定

参数type是确定套接字的类型;参数protocl通常设为0,即表示为给定的domain和type选择默认协议。

类型 描述
SOCK_DGRAM AF_INET中该类型默认协议是UDP
SOCK_RAW IP协议的数据报接口
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值