IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【牛客网C++服务器项目学习】-Day11-socket编程的相关API函数 -> 正文阅读

[系统运维]【牛客网C++服务器项目学习】-Day11-socket编程的相关API函数

项目学习地址:【牛客网C++服务器项目学习】

day 11

socket通信过程:

img

1.socket函数

int socket(int domain, int type, int protocol);
功能:
	- 创建一个文件描述符用于主机之间端对端的通信
参数:
	- domain:domain是指定一个协议族用于通信,能够使用的协议族在头文件<sys/socket.h>中被定义好了:
    	- AF_UNIX, AF_LOCAL   Local communication              unix(7)
       	- AF_INET             IPv4 Internet protocols          ip(7)
       	- AF_INET6            IPv6 Internet protocols
    - type: 套接字具有指定的类型,它指定了通信语义。目前定义的类型有:(罗列用于TCP和UDP的)
    	- SOCK_STREAM
        - SOCK_DGRAM
    - protocol:在第一个参数domain中我们指定了用于通信的协议族。既然是协议族,那么一个协议族中可能会包含多个协议
    			参数protocol就是用来指定具体的协议的。如果该参数为0,一般是使用协议族中的默认协议。
返回值:
    - 成功执行,返回一个文件描述符;错误,返回-1

2.bind函数

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
功能:将一个由socket()函数创建的文件描述符sockfd,在内存空间中赋于一个地址。不过这个函数通常也叫作“给socket赋于一个
      名字”
参数:
	- sockfd:由socket函数得到的文件描述符
    - addr:socket地址结构体的首地址。客户端的IP地址和端口号信息
    - addrlen:结构体的长度
返回值:成功返回0,失败返回-1

3.listen函数

int listen(int sockfd, int backlog);
功能:Listen()将sockfd所引用的套接字标记为被动套接字,然后使用accept()函数来接收传入的连接请求的套接字。
参数:
	- sockfd:需要监听(标记)的套接字文件描述符
    - backlog:backlog参数定义了sockfd的挂起连接队列可以增长的最大长度。如果在队列满时到达连接请求,
    	客户机可能会收到一个指示为ECONNREFUSED的错误,或者,如果底层协议支持重传,则可能会忽略该请求,以便稍后重试连接成功。
返回值:成功返回0,失败返回-1

4.connect函数

int connect(int sockfd, const struct sockaddr *addr,
                   socklen_t addrlen);
功能:connect()系统调用将文件描述符sockfd所引用的套接字连接到addr所指定的地址。
参数:
	- sockfd:需要连接的主机的套接字
    - addr:需要连接的服务端的地址
    - addrlen:地址长度
返回值:成功返回0,失败返回-1

5.accept函数

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
功能:提取监听套接字sockfd的挂起连接队列上的第一个连接请求,创建一个新的连接套接字,并返回一个引用该套接字的新文件描述符。
参数:
	- sockfd:参数sockfd是一个用socket(2)创建的套接字,用bind(2)绑定到一个本地地址,并在listen(2)之后监听连接。
    - addr:一个传出参数。该结构体最后会记录下所连接的客服端的IP地址和端口号
    - addrlen:第二个参数的长度
返回值:
	- 成功:返回一个新的文件描述符
    - 失败: -1
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 18:06:51  更:2021-12-16 18:08:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:20:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码