当前位置:网站首页>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 ofIPC
methods ( 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_xxx
andPF_xxx
Is the corresponding .
usePF_xxx
Such a value to createsocket
, useAF_xxx
Such a value to constructsocket
The 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
domain
Specifies the protocol family . Address families are also specified , namely socket Address type of .type
Specifies the communication semantics .protocol
Specify the specific communication protocol .
边栏推荐
- CF1634 F. Fibonacci Additions
- 剑指 Offer 06.从头到尾打印链表
- Codeforces Round #716 (Div. 2) D. Cut and Stick
- 个人开发的渗透测试工具Satania v1.2更新
- MySQL数据库(一)
- Improvement of pointnet++
- kubeadm系列-02-kubelet的配置和启动
- 每日一题-搜索二维矩阵ps二维数组的查找
- [jailhouse article] performance measurements for hypervisors on embedded ARM processors
- Haut OJ 1401: praise energy
猜你喜欢
[depth first search] 695 Maximum area of the island
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
剑指 Offer 05. 替换空格
Sword finger offer 04 Search in two-dimensional array
Hang wait lock vs spin lock (where both are used)
【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors
Sword finger offer 58 - ii Rotate string left
剑指 Offer 05. 替换空格
AtCoder Grand Contest 013 E - Placing Squares
Acwing 4300. Two operations
随机推荐
第六章 数据流建模—课后习题
SSH password free login settings and use scripts to SSH login and execute instructions
【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors
Pointnet++ learning
读者写者模型
YOLOv5-Shufflenetv2
CCPC Weihai 2021m eight hundred and ten thousand nine hundred and seventy-five
Animation scoring data analysis and visualization and it industry recruitment data analysis and visualization
Sword finger offer 53 - I. find the number I in the sorted array
Acwing 4301. Truncated sequence
Haut OJ 1357: lunch question (I) -- high precision multiplication
每日一题-无重复字符的最长子串
Sword finger offer 53 - ii Missing numbers from 0 to n-1
Demonstration of using Solon auth authentication framework (simpler authentication framework)
Fried chicken nuggets and fifa22
Pointnet++的改进
Reflection summary of Haut OJ freshmen on Wednesday
剑指 Offer 04. 二维数组中的查找
过拟合与正则化
On-off and on-off of quality system construction