socket的相关操作
发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,1.创建socket:所有的东西在UNIX都是文件socket系统调用可创建一个socketint socket (int domain, int type, int protocol);d
千家信息网最后更新 2024年10月26日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安全错误
数据库的锁怎样保障安全
建设好数据库
开软件开发需要什么条件
cti服务器搭建
服务器安全事后审查
游戏软件开发在哪学
互联网金融与金融科技的不同
360聊天软件开发
国家网络安全周漫画
鲲鹏服务器有缺点
数据库是管理大数据吗
人人保网络技术 联系方式
ip网络技术子网划分
肇庆信息软件开发收费
控制数据库和应用系统访问
广州网络技术员培训班
yale人脸数据库的功能
数据库最小覆盖第三步
网络安全法第二十五条
智能网络技术的结构
业内较好的定制软件开发
车辆管理监控服务器
京巨量引擎网络技术有限公司
网络技术创新创业
服务器安全事后审查
思科打印服务器软件
索尼请连接网络服务器
公安局网络安全周工作总结
机器学习服务器安装教程
数据库最小覆盖第三步
深圳市赛米软件开发