socket的相关操作
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,1.创建socket:所有的东西在UNIX都是文件socket系统调用可创建一个socketint socket (int domain, int type, int protocol);d
千家信息网最后更新 2026年11月03日socket的相关操作
1.创建socket:所有的东西在UNIX都是文件socket系统调用可创建一个socketint socket (int domain, int type, int protocol);domain:告诉系统使用那个底层协议族type:指定服务类型1.1服务类型有SOCK_STREAM和SOCK_UGRAM(数据报)1.内核在2.16.17开始,type可以接逻辑与的参数SOCK_NONBLOCK和SOCK_CLOEXEC来表示soocket是否非阻塞1.3protocol参数在前两个参数的下,在选择一个具体的协议调用结果:返回一个socket文件描述符,失败返回-1并且设置errno2.命名socket创建的时候,我们只是指定了地址族,但是未指定使用具体的那个socket地址讲一个socket与socket地址绑定称为socket命名服务器需要命名socket,客户端不需要2.1int bind(int sockfd,const struct sockaddr * my_addr,socklen_t addrlen);bind 成功返回0,失败返回-1并设置errno
2.2 常见的失败有EACCES:被绑定的地址是受保护的,仅仅是超级用户可以访问
EADDRINUSE:被绑定的地址正在使用
3.监听socket、
创建和命名后,是不能直接被客户端访问,需要创建一个监听队列来存放待处理的客户连接
3.1 int listen(int sockfd, int backlog);
backlog参数提示内核监听队列的最大长度
超过之后,就不再受理客户连接
错误消息是ECONNREFUSED
listen唱功返回0,失败返回-1并且设置errno
完整的连接只是backlog+1 个
4.接受连接
int accept(int sockfd,struct sockaddr addr,socklen_t addrlen)
问题:如果有个客户端请求出现网络异常或者掉线,会怎样?
答案:accept只是从监听队列取出来连接,不论连接出于什么状态,更不会关心网络变化
地址
客户
参数
监听
客户端
队列
服务
内核
只是
文件
类型
系统
网络
最大
成功
东西
两个
唱功
常见
底层
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
广州大一互联网络科技有限公司
中关村互联网 科技集团
奇酷互联网科技公司
善班互联网科技有限公司
科技互联网公司logo
上海亿帐通互联网科技
新华互联网科技校企合作
富国互联网科技创新基金
欧洲十大科技互联网公司
互联网科技与管理
互联网对科技的发展
玉溪新华互联网科技好不好
世界互联网领先科技成果获奖
广州有谷有贝互联网科技有限公司
互联网界的黑科技
互联网科技的前景
恒生科技指数 中概互联网
承德科技产业互联网平台
瑞安市蟠桃会互联网科技有限公司
科技类互联网
浩特互联网科技
互联网前沿科技
美国互联网前沿科技
中国最先进互联网科技公司
河南猎农互联网科技有限公司
武汉健翔互联网络科技有限公司
恒生互联网科技指数跳水
互联网科技和信息
互联网科技快速发展优美句子