linux的基础知识——网络套接字函数
1.socket函数
#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);
功能:创建套接字
参数:domain
:AF_INET,AF_INET6, AF_UNIX;type
:SOCK_STREAM ,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW ,SOCK_RDM ,SOCK_PACKET ;protocol
:一般传入0
返回值:成功返回创建的socket的文件描述符;失败返回-1
2.bind函数
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
功能:服务器程序所监听的网络地址和端口号通常是不变的,客户端程序得知服务器程序的IP地址和端口号之后,向服务器发起连接,因此服务器需要调用bind绑定一个固定的网络地址和端口号。bind函数的作用是把sockft和addr绑定在一起,sockft是一个网络通讯文件描述符,监听addr的地址和端口号。
参数:sockft:文件描述符;addr:IP地址和端口号;addrlen:sizeof(addr)
返回值:成功返回0;失败返回-1
3.listen函数
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>int listen(int sockfd, int backlog);
功能:允许同时建立连接的数目
参数:sockft:文件描述符;backlog:数量
返回值:成功返回0;失败返回-1
4.accept函数
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
功能:三方握手完成后,服务器调用accept函数接受连接,如果没有客户端连接请求,服务器就阻塞等待直到有客户端连接上来。
参数:sockft:文件描述符;addr:传出参数,返回连接客户端的地址信息,IP地址和端口号;addrlen:传入sizeof(addr),传出真正接收到地址结构体的大小。
返回值:成功返回一个新的文件描述符,用于和客户端通信;失败返回-1。
5.connect函数
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
功能:客户端需要调用connect函数连接服务器
参数:sockft:文件描述符;addr:传入参数,服务器的addr,包括IP地址和端口号;addrlen:传入参数,sizeof(addr)。
返回值:成功返回0,失败返回-1。
linux的基础知识——网络套接字函数相关推荐
- linux的基础知识——本地套接字
1.本地套接字
- linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构
1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...
- Linux系统基础知识
Linux系统基础知识 1.在Linux系统中,以文件方式访问设备. 2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...
- 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client
1 Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Linux操作系统基础知识学习
Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...
- 权限认证php,2016年Linux认证基础知识:php做权限管理
2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...
- IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...
- 世界上第一台计算机釆用的主要是什么电子管,基础知识-网络教育
基础知识-网络教育 (89页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 基础知识单选题1. 下列关于世界上第一台电子计算机ENIAC的叙 ...
最新文章
- [洛谷P5147]随机数生成器
- PostgreSQL 客户端乱码问题
- 翟树卿:如何让数据挖掘助力精准化营销
- UA MATH575B 数值分析下VI 统计物理的随机模拟方法2
- 【uni-app】小程序实现微信在线聊天(私聊/群聊)
- windowskb2685811补丁_KB898461补丁
- BP神经网络反向传播手动推导
- LeetCode 1629. 按键持续时间最长的键
- osi模型:七层模型介绍_联网| OSI模型能力问题和解答 套装1
- IKM JAVA , SPRING, HIBERNATE_ANZ
- Android 使用反射调用StorageManager中 Hide方法getVolumeList、getVolumeState
- 64位x86-64处理器
- 深究递归和迭代的区别、优缺点及实例对比
- A Survey on Contrastive Self-Supervised Learning(对比式自监督学习研究)-----pretext tasks、Downstream task解释
- Java代码导出数据库百万数据生成sql脚本
- C语言输出4*5的矩阵
- 模电学习第三天--三极管梳理
- ACCESS数据库窗体
- javafx 实现绘图板
- 韩媒看中国量子计算机,韩媒:量子计算机原本是欧美在玩中国却令人吃惊
热门文章
- LeetCode 640. 求解方程(字符串)
- LeetCode 167. 两数之和 II - 输入有序数组(双指针)
- LeetCode 129. 求根到叶子节点数字之和(DFS)
- oss图片跨域问题_图片存储解决方案-阿里云对象存储
- c语言程序做成可执行文件,windows环境下C程序生成可执行文件
- input和output哪个是充电_input是什么接口?告诉大家这个小常识,以后音箱接线更容易...
- Opencv visual studio c++ 环境搭建
- 从零搭建基于知识图谱的问答系统(以医疗行业为例)
- 美团 iOS 工程 zsource 命令背后的那些事儿
- Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解