当前位置:网站首页>Simply sort out the types of sockets
Simply sort out the types of sockets
2022-07-05 05:35:00 【Raise items】
List of articles
After this period of time to learn network programming , I found that there are many types of sockets , Not only
TCP and UDP So simple , This article is simple socket The type of . socket system call
adopt establish socket The system call interface of can see the kernel pair socket The classification of .
// #include <sys/socket.h>
int socket(int domain, int type, int protocol);
Parameters
adopt domain、type and protocol These three parameters can only Identify a socket. So it's OK to socket do Three dimensions The classification of .
domain
This parameter specifies Protocol family . There are several values in total :
PF_LOCAL Host-internal protocols, formerly called PF_UNIX,
PF_UNIX Host-internal protocols, deprecated, use PF_LOCAL,
PF_INET Internet version 4 protocols,
PF_ROUTE Internal Routing protocol,
PF_KEY Internal key-management function,
PF_INET6 Internet version 6 protocols,
PF_SYSTEM System domain,
PF_NDRV Raw access to network device,
PF_VSOCK VM Sockets protocols
There are three kinds of commonly used :
PF_INET:ipv4 Type of socket, Use ipv4 network address + Port number identification socket The address of , Used for communication between hosts .PF_INET6:ipv6 Type of socket, Use ipv6 network address + Port number identification socket The address of , Used for communication between hosts .PF_LOCAL: Local socket, Use The absolute pathname of a file identification socket Address , Used between different processes on the same host , It's a kind ofIPCmethods ( It is equivalent to two processes passing Share a file Achieve communication ). The socket It uses Simplified network protocol stack , So the performance is high .
The protocol family determines , The address family is determined .
structure socket The address of when , To specify Address family (AF_xxx),AF_xxxandPF_xxxIs the corresponding .
usePF_xxxSuch a value to createsocket, useAF_xxxSuch a value to constructsocketThe address of .
type
This parameter specifies Semantics of communication . There are three values :
SOCK_STREAM
SOCK_DGRAM
SOCK_RAW
SOCK_STREAM: Byte stream type , Provide Orderly 、 reliable 、 There is a connection 、 Based on byte stream Communication mechanism .SOCK_DGRAM: Datagram type , Provide The maximum length is fixed 、 There is no connection 、 unreliable Communication mechanism .SOCK_RAW: original socket type , Provide right Internal network protocols and interfaces The interview of , Available only for super users . Raw socket It can be handled without the network protocol stack , Direct access to the network card , Send the message constructed by the user process .
protocol
This parameter specifies socket The specific protocol to be used in communication .
When the first two parameters Cannot uniquely identify One Specific network communication protocol when , Will use protocol Specify a specific agreement .
Return value
This function returns a socket The descriptor , Return... On failure -1.
stay Linux Inside , Everything is a document ,socket No exception .
socket system call <----> open system call
socket The descriptor <----> File descriptor
adopt socket send data <----> The document says
adopt socket receive data <----> File read
summary
domainSpecifies the protocol family . Address families are also specified , namely socket Address type of .typeSpecifies the communication semantics .protocolSpecify the specific communication protocol .
边栏推荐
- A new micro ORM open source framework
- Time complexity and space complexity
- 【实战技能】非技术背景经理的技术管理
- Sword finger offer 05 Replace spaces
- [jailhouse article] look mum, no VM exits
- Drawing dynamic 3D circle with pure C language
- Educational Codeforces Round 107 (Rated for Div. 2) E. Colorings and Dominoes
- 从Dijkstra的图灵奖演讲论科技创业者特点
- Web APIs DOM node
- [jailhouse article] performance measurements for hypervisors on embedded ARM processors
猜你喜欢

lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8

剑指 Offer 06.从头到尾打印链表

Sword finger offer 53 - I. find the number I in the sorted array

Web APIs DOM node

2017 USP Try-outs C. Coprimes

Binary search basis

SAP method of modifying system table data
![[jailhouse article] look mum, no VM exits](/img/fe/87e0851d243f14dff96ef1bc350e50.png)
[jailhouse article] look mum, no VM exits

Chapter 6 data flow modeling - after class exercises

Sword finger offer 05 Replace spaces
随机推荐
Demonstration of using Solon auth authentication framework (simpler authentication framework)
Graduation project of game mall
How many checks does kubedm series-01-preflight have
kubeadm系列-01-preflight究竟有多少check
YOLOv5添加注意力机制
Configuration and startup of kubedm series-02-kubelet
Codeforces round 712 (Div. 2) d. 3-coloring (construction)
Introduction to memory layout of FVP and Juno platforms
[binary search] 34 Find the first and last positions of elements in a sorted array
Support multi-mode polymorphic gbase 8C database continuous innovation and heavy upgrade
挂起等待锁 vs 自旋锁(两者的使用场合)
EOJ 2021.10 E. XOR tree
【Jailhouse 文章】Jailhouse Hypervisor
R语言【数据集的导入导出】
[es practice] use the native realm security mode on es
常见的最优化方法
从Dijkstra的图灵奖演讲论科技创业者特点
软件测试 -- 0 序
Haut OJ 1245: large factorial of CDs --- high precision factorial
Sword finger offer 53 - I. find the number I in the sorted array