Liuuuu408
码龄3年
关注
提问 私信
  • 博客:99,660
    99,660
    总访问量
  • 109
    原创
  • 39,054
    排名
  • 783
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2021-09-15
博客简介:

f593256的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    987
    当月
    9
个人成就
  • 获得1,017次点赞
  • 内容获得31次评论
  • 获得1,260次收藏
  • 代码片获得561次分享
创作历程
  • 35篇
    2024年
  • 74篇
    2023年
成就勋章
TA的专栏
  • c++
    31篇
  • 设计模式
    2篇
  • linux
    28篇
  • 线程池
    1篇
  • HTTP
    7篇
  • Qt
    1篇
  • c++11新特性
    32篇
  • Java基础知识进阶
    5篇
  • 数据结构与算法
    3篇
兴趣领域 设置
  • 编程语言
    c++
  • 数据结构与算法
    算法
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

快速幂算法

函数pow_mod计算 (x^y \mod \text{mod}) 的值,其中 (x) 是基数,(y) 是指数,(\text{mod}) 是模数。它使用的是“快速幂”算法,这是一种高效计算大整数幂的方法,并在每一步计算中都取模以防止溢出。这个算法的时间复杂度是 (O(\log y))。
原创
发布博客 2024.07.30 ·
206 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

观察者模式(C++实现)

观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,。
原创
发布博客 2024.07.24 ·
442 阅读 ·
6 点赞 ·
0 评论 ·
2 收藏

stringstream的使用

是一个强大的工具,用于在内存中处理字符串数据。它提供了灵活的格式化和解析功能,适合在需要频繁进行字符串操作的应用场景中使用。相比传统的C风格字符串操作,提供了更安全和更便捷的接口,有助于提高代码的可读性和维护性。
原创
发布博客 2024.06.18 ·
1307 阅读 ·
3 点赞 ·
0 评论 ·
7 收藏

基于UDP的套接字通信(附通信代码)

测试:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传。
原创
发布博客 2024.01.29 ·
1134 阅读 ·
21 点赞 ·
0 评论 ·
21 收藏

IO多路复用-epoll

epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。epoll是select和poll的升级版,相较于这两个前辈,epoll改进了工作方式,因此它更加高效。对于待检测集合select和poll是基于线性方式处理的,epoll是基于红黑树来管理待检测集合的。select和poll每次都会线性扫描整个待检测集合,集合越大速度越慢,epoll使用的是回调机制,效率高,处理效率也不会随着检测集合的变大而下降。
原创
发布博客 2024.01.26 ·
1353 阅读 ·
24 点赞 ·
1 评论 ·
30 收藏

IO多路复用-poll(附通信代码)

nfds: 这是第一个参数数组中最后一个有效元素的下标 + 1(也可以指定参数1数组的元素总个数)fds: 这是一个struct pollfd类型的数组, 里边存储了待检测的文件描述符的信息。0:不阻塞,不管检测集合中有没有已就绪的文件描述符,函数马上返回。大于0:阻塞指定的毫秒(ms)数之后,解除阻塞。timeout: 指定poll函数的阻塞时长。
原创
发布博客 2024.01.25 ·
548 阅读 ·
7 点赞 ·
0 评论 ·
7 收藏

c++ bitset使用方法

是C++中用于处理二进制位的标准库类,它允许你以一种直观的方式操作二进制位。
原创
发布博客 2024.01.25 ·
638 阅读 ·
11 点赞 ·
0 评论 ·
5 收藏

多线程select并发

还有就是在检测到有通信描述符在rdsert集合中被返回时, 在创建一个子线程, 完成通信操作。主线程在检测到有新的客户端连接之后, 创建一个子线程完成。是一个自定义的结构体。
原创
发布博客 2024.01.24 ·
401 阅读 ·
11 点赞 ·
1 评论 ·
8 收藏

IO多路复用-select(附通信代码)

I/O多路复用(I/O Multiplexing)是一种通过一种机制同时监听多个文件描述符(sockets、文件、设备等)的技术。它可以使一个进程在等待多个 I/O 操作完成时不会阻塞,从而提高程序的性能和响应性。通过这种方式在单线程/进程的场景下也可以在服务器端实现并发。。I/O多路复用的优势在于它可以有效地管理大量的连接,避免了创建大量线程或进程的开销。它适用于需要同时处理多个连接,但每个连接的数据流量相对较小的情况,如网络服务器、聊天程序等。
原创
发布博客 2024.01.24 ·
1076 阅读 ·
23 点赞 ·
1 评论 ·
19 收藏

基于线程池的TCP套接字通信

其中添加监听和通信任务函数的时候的参数问题需要创建两个结构体, 具体细节在代码中已经体现出来了。客户端的代码和线程池代码在之前的文章里已经有了, 都不变。
原创
发布博客 2024.01.22 ·
500 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

基于多线程的套接字通信

在多线程版的服务器端程序中,多个线程共用同一个地址空间,有些数据是共享的,有些数据的独占的。解决这种问题有多种方法, 我们先来看多线程解决。就是三个服务器和客户端在通信。
原创
发布博客 2024.01.22 ·
612 阅读 ·
6 点赞 ·
2 评论 ·
11 收藏

TCP重传, 滑动窗口, 流量控制, 拥塞控制

实际上「报文往返 RTT 的值」是经常变化的,因为我们的网络也是时常变化的。当接收端的缓冲区面临数据溢出时,窗口大小的值也是随之改变,设置为一个更小的值通知发送端,从而控制数据的发送量,这样达到流量的控制。所以,TCP 不能忽略网络上发生的事,它被设计成一个无私的协议,当网络发送拥塞时,TCP 会自我牺牲,降低发送的数据量。快速重传的工作方式是当收到三个相同的 ACK 报文时,会在定时器过期之前,重传丢失的报文段。,这样发送方就可以知道哪些数据收到了,哪些数据没收到,知道了这些信息,就可以。
原创
发布博客 2024.01.21 ·
1164 阅读 ·
24 点赞 ·
0 评论 ·
22 收藏

TCP的三次握手和四次挥手

序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。确认应答号:指**下一次「期望」收到的数据的序列号**,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决丢包的问题。ACK:该位为1时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的SYN包之外该位必须设置为1。RST:该位为1时,表示 TCP 连接中出现异常必须强制断开连接。SYN。
原创
发布博客 2024.01.21 ·
1079 阅读 ·
20 点赞 ·
0 评论 ·
22 收藏

套接字通信(附带单线程TCP套接字通信代码)

当检测到有新的客户端连接请求时,阻塞解除,新连接就建立了,得到的返回值也是一个文件描述符,基于这个文件描述符就可以和客户端通信了。如果连接没有断开,接收端接收不到数据,接收数据的函数会阻塞等待数据到达,数据到达后函数解除阻塞,开始接收数据,当发送端断开连接,接收端无法接收到任何数据,但是这时候就不会阻塞了,函数直接返回0。总的来说,局域网和广域网在范围、连接设备、传输速度以及应用场景上有明显的区别,它们在网络体系中协同工作,为不同规模和需求的组织提供了灵活的网络解决方案。
原创
发布博客 2024.01.20 ·
1005 阅读 ·
22 点赞 ·
0 评论 ·
25 收藏

mian函数中exit(0)是什么意思

在实际应用中,程序员可以根据需要选择适当的返回值。这些返回值可以在调用程序中进行解释,以了解程序的执行状态。例如,在Unix/Linux系统中,可以通过在终端中运行。是用于正常退出程序的方式。这行代码的含义是让程序在此处结束执行,并返回操作系统。通常表示程序成功执行,而非零值通常用于表示程序在执行过程中发生了错误。是一种正常退出程序的方式,通常用于表示程序成功执行。命令查看最近运行的程序的退出状态。
原创
发布博客 2024.01.20 ·
895 阅读 ·
9 点赞 ·
0 评论 ·
9 收藏

线程池c++实现

线程池(Thread Pool)是一种并发编程的设计模式,它用于管理和重复使用线程,以提高程序的性能和资源利用率。线程池通过维护一组预先创建的线程,这些线程可以在需要时被重复使用,而不是为每个任务都创建一个新的线程。线程池通常包含以下主要组件用于存储待执行的任务。当有新的任务到达时,它被放入任务队列中等待执行。一组预先创建的线程,它们在整个程序的生命周期内一直存在。这些线程从任务队列中获取任务,并执行任务的操作。负责管理线程池的创建、销毁和任务分配等工作。
原创
发布博客 2024.01.20 ·
1182 阅读 ·
19 点赞 ·
0 评论 ·
18 收藏

什么是RAII?

当FileHandler对象的生命周期结束(如函数返回时),其析构函数会被调用,文件会被自动关闭。这种方法不仅代码清晰,而且能有效避免资源泄漏,特别是在遇到异常情况时。在C++中,RAII通常通过类的构造函数进行资源获取,通过析构函数进行资源释放来实现。当对象创建时,其构造函数会获取必要的资源,当对象超出作用域时,其析构函数会被自动调用,释放资源。它是一种编程习惯,通常用于C++等语言,用于管理资源,如内存、文件句柄、网络连接等。资源在对象初始化时获取,在对象销毁时自动释放。
原创
发布博客 2024.01.12 ·
467 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

实现线程同步的几种方式

条件变量(Condition Variable)是一种多线程同步的机制,用于在多个线程之间建立通信。条件变量通常与互斥锁(Mutex)一起使用,以解决线程间的协调和同步问题。**条件变量用于在某个条件发生或者满足时通知其他线程。**典型的情况是,一个线程等待某个条件变为真,而另一个线程在某些情况下负责将条件设置为真,并通知等待的线程。这样,等待线程可以被唤醒并继续执行。
原创
发布博客 2024.01.11 ·
1512 阅读 ·
21 点赞 ·
0 评论 ·
20 收藏

什么是线程?

线程是计算机科学中的基本概念,指的是在一个进程中执行的独立指令流。通常,一个进程可以包含多个线程,它们共享进程的资源,如内存空间、文件句柄等,但每个线程有自己的独立执行流。线程是操作系统进行调度的最小单元进程是资源分配的最小单位),它由线程标识符、程序计数器、寄存器集合和堆栈组成。与进程不同,**线程之间可以更轻松地共享数据和通信,因为它们属于同一个进程,共享相同的地址空间。**这使得线程在并发编程中更为灵活,可以用于实现多任务并行执行。多线程的优点包括提高程序的响应性、资源共享和更高的系统利用率。
原创
发布博客 2024.01.10 ·
1687 阅读 ·
6 点赞 ·
0 评论 ·
9 收藏

第十章 构建Web内容的技术

第十章 构建Web内容的技术10.1 HTML10.1.1 Web页面几乎全由HTML构建HTML(HyperTextMarkup Language,超文本标记语言)是为了发送Web上的超文本(Hypertext)而开发的标记语言。超文本是一种文档系统,可将文档中任意位置的信息与其他信息(文本或图片等)建立关联,即超链接文本。标记语言是指通过在文档的某部分穿插特别的字符串标签,用来修饰文档的语言。我们把出现在HTML文档内的这种特殊字符串叫做HTML标签(Tag)。平时我们浏览的Web页面几乎全是使
原创
发布博客 2024.01.10 ·
970 阅读 ·
21 点赞 ·
0 评论 ·
18 收藏
加载更多