05 2022 档案

摘要:I/O复用使得程序能同时监听多个文件描述符. 客户端程序需要同时处理多个socket 非阻塞connect技术 客户端程序同时处理用户输入和网络连接 聊天室程序 TCP服务器要同时处理监听socket和连接socket 同时处理TCP和UDP请求 - 回射服务器 同时监听多个端口, 或者处理多种服务 阅读全文
posted @ 2022-05-31 16:04 马梦佳 阅读(67) 评论(0) 推荐(0)
摘要:一、三类质量属性 系统的质量属性; 受构架影响的商业属性:例如:上市时间; 与构架本身相关的一些质量属性:概念完整性。 二、质量属性概述 1.理念:质量高于功能。 经常重新设计系统,并不是因为该系统在功能上有缺陷,而是由于: 系统运行速度太慢 系统容易受到外界攻击 系统的维护、移植或扩展十分困难 … 阅读全文
posted @ 2022-05-30 15:33 马梦佳 阅读(1170) 评论(0) 推荐(0)
摘要:服务器模型-CS模型 优点 实现起来简单 缺点 服务器是通信的中心, 访问过大的时候会导致响应过慢 模式图 编写的demo 没有用到fork函数. 后续待完善 服务器框架 IO模型 这个模型大概能够理解, 自己也算是学了半年的Javaweb. socket在创建的时候默认是阻塞的, 不过可以通过传S 阅读全文
posted @ 2022-05-29 16:02 马梦佳 阅读(33) 评论(0) 推荐(0)
摘要:读写数据 - readv writev mmap munmap readv/writev #include <sys/uio.h> // count 为 vector的长度, 即为有多少块内存 // 成功时返回写入\读取的长度 失败返回-1 ssize_t readv(int fd, const s 阅读全文
posted @ 2022-05-27 15:58 马梦佳 阅读(45) 评论(0) 推荐(0)
摘要:Linux程序服务器 一般以后台进程形式运行. 后台进程又称为守护进程(daemon). 他没有控制终端, 因而不会意外的接收到用户输入. 守护进程的父进程通常都是init进程(PID为1的进程) Linux服务器程序有一套日志系统, 他至少能输出日志到文件. 日志这东西太重要了,排错对比全靠它. 阅读全文
posted @ 2022-05-25 16:00 马梦佳 阅读(74) 评论(0) 推荐(0)
摘要:2 阅读全文
posted @ 2022-05-24 09:46 马梦佳 阅读(24) 评论(0) 推荐(0)
摘要:11 阅读全文
posted @ 2022-05-24 09:44 马梦佳 阅读(14) 评论(0) 推荐(0)
摘要:splice函数 用于在两个文件名描述符之间移动数据, 0拷贝操作 #include <fcntl.h> // fd_in 为文件描述符, 如果为管道文件描述符则 off_in必须为NULL, 否则为读取开始偏移位置 // len为指定移动的数据长度, flags参数控制数据如何移动. // - S 阅读全文
posted @ 2022-05-22 15:58 马梦佳 阅读(30) 评论(0) 推荐(0)
摘要:简论互联网三高架构 马梦佳 (石家庄铁道大学,河北省石家庄市,050043) 摘要:互联网的三高架构就是指设计互联网系统架构时需要满足高可用、高性能、高并发。本文主要论述了互联网三高架构的特点、要求、解决方案等方面的问题。 关键字:互联网、分布式架构设计、并发性、可用性、性能 互联网三高架构包括高并 阅读全文
posted @ 2022-05-20 10:56 马梦佳 阅读(626) 评论(0) 推荐(0)
摘要:Linux提供的高级IO函数, 自然是特定条件下能力更强, 不然要他干啥, 特定条件自然限制了他的使用频率 文件描述符 文件描述符在是一个非负整数。是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。 STDOUT_FILENO(值为1)- 值为1的文件描述符为标准输出, 关闭STDO 阅读全文
posted @ 2022-05-19 15:55 马梦佳 阅读(56) 评论(0) 推荐(0)
摘要:1 阅读全文
posted @ 2022-05-18 19:57 马梦佳 阅读(26) 评论(0) 推荐(0)
摘要:1 阅读全文
posted @ 2022-05-18 19:57 马梦佳 阅读(10) 评论(0) 推荐(0)
摘要:通用读写函数 #inclued <sys/socket.h> ssize_t recvmsg(int sockfd, struct msghdr* msg, int flags); ssize_t sendmsg(int sockfd, struct msghdr* msg, int flags); 阅读全文
posted @ 2022-05-17 15:51 马梦佳 阅读(50) 评论(0) 推荐(0)
摘要:3 阅读全文
posted @ 2022-05-16 16:23 马梦佳 阅读(14) 评论(0) 推荐(0)
摘要:以下两个函数通过读取/etc/services文件 来获取服务信息 以下内容来自维基百科 Service文件是现代操作系统在etc目录下的一个配置文件,记录网络服务名对应的端口号与协议 其用途如下 通过TCP/IP的API函数(声明在netdb.h中)直接查到网络服务名与端口号、使用协议的对应关系。 阅读全文
posted @ 2022-05-15 15:52 马梦佳 阅读(52) 评论(0) 推荐(0)
摘要:// 主机序和网络字节序转换 #include <netinet/in.h> unsigned long int htonl (unsigned long int hostlong); // host to network long unsigned short int htons (unsigne 阅读全文
posted @ 2022-05-13 15:48 马梦佳 阅读(46) 评论(0) 推荐(0)
摘要:socket基础api位于 sys/socket.h 头文件中 socket最开始的含义是 一个IP地址和端口对. 唯一的表示了TCP通信的一段 网络信息api netdb.h头文件中 主机字节序和网络字节序 字节序分为 大端字节序和小端字节序 由于大多数PC采用小端字节序(高位存在高地址处), 所 阅读全文
posted @ 2022-05-12 15:46 马梦佳 阅读(44) 评论(0) 推荐(0)
摘要:Tcp读写都是针对缓冲区来说, 所以没有固定的读写次数对应关系. UDP没有缓冲区, 必须及时接受数据否则会丢包, 或者接收缓冲区过小就会造成数据报截断 ISN-初始序号值 32位序号 后续的TCP报文段中序号值 seq = ISN + 报文段首字节在整个字节流中的偏移 32位确认号 收到的TCP报 阅读全文
posted @ 2022-05-09 15:45 马梦佳 阅读(80) 评论(0) 推荐(0)
摘要:TCP/IP协议族体系结构和主要协议 协议族中协议众多, 这本书只选取了IP和TCP协议 - 对网络编程影响最直接 同样七层是osi参考模型, 简化后得到四层 不同层次之间, 通过接口互相交流, 这样方便了各层次的修改 应用层 负责处理应用程序的逻辑 表示层 定义了数据的格式及加密 会话层 它定义了 阅读全文
posted @ 2022-05-08 15:43 马梦佳 阅读(61) 评论(0) 推荐(0)
摘要:IP协议是TCP/IP协议簇的核心协议, 是socket网络编程的基础之一 IP协议为上层协议提供无状态, 无连接, 不可靠的服务 IP数据报最大长度是65535(2^16 - 1)字节, 但是有MTU的限制 当IP数据报的长度超过MTU 将会被分片传输. 分片可能发生在发送端, 也可能发生在中转路 阅读全文
posted @ 2022-05-07 15:44 马梦佳 阅读(45) 评论(0) 推荐(0)
摘要:程序分为计算密集型(CPU使用很多, IO资源使用很少)和IO密集型(反过来). 前者使用并发编程反而会降低效率, 后者则会提升效率 并发编程有多进程和多线程两种方式 并发模式 - IO单元和多个逻辑单元之间协调完成任务的方法. 服务器主要有两种并发模式 半同步/半异步模式 领导者/追随者模式 半同 阅读全文
posted @ 2022-05-06 16:03 马梦佳 阅读(61) 评论(0) 推荐(0)
摘要:3 阅读全文
posted @ 2022-05-04 10:24 马梦佳 阅读(28) 评论(0) 推荐(0)
摘要:1.先查看下CentOS系统有没有安装GCC与G++。打开终端输入gcc -v或者:g++ -v 2. 使用yum安装gcc与g++ 在有网络连接条件下进行分别执行如下命令: 安装gcc、c++编译器以及内核文件 yum -y install gcc gcc-c++ kernel-devel 3.​ 阅读全文
posted @ 2022-05-03 10:22 马梦佳 阅读(765) 评论(0) 推荐(0)