socket的相关操作
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,1.创建socket:所有的东西在UNIX都是文件socket系统调用可创建一个socketint socket (int domain, int type, int protocol);d
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
地下城堡3不同线路服务器区别
怎么让传奇私服重启服务器
科技互联网作文
当虹科技互联网
中国新冠数据库
中国网络安全法律编年史
服务器系统管理bmc 芯片
云软件开发公司
推流服务器
vb 数据库 查询数据库
网络安全值班
美国网络安全指数
数据库如何查找多个字
美国禁停中国的数据库
澳门统计局数据库
数据库中获取有字符出现次数
中兴软件开发二面面经英语
山东省线上网络安全知识问答
数据库阵型图
蔚来软件开发待遇怎么样
公司服务器数据是什么
工业园区管理软件开发推荐咨询
任子行网络安全审计设备
数据库select年龄加一
关于网络安全的英语应用文
河南存储服务器机箱品牌
服务器网口千兆交换机百兆
中国华云串口服务器
用友t3财务有公式无数据库
云服务器怎么保障安全源