自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 离线升级docker中的某个镜像——以etcd为例

5.将etcd和etcdctl移动到和dockerfile同级目录:$ mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl -t ./【补充说明】可以直接在可以联网的机器中使用docker pull nginx,下载好之后将nginx的镜像导出,在导入到非联网的机器中使用。之前有个项目的程序统一在docker中运行,最近在做安全检查时,发现docker的部分image因为版本没有更新到最新而出现安全漏洞问题。

2024-07-05 16:43:55 798

原创 部署过docker后,防火墙firewall与iptables的基本指令

详情参考:https://blog.csdn.net/yeqinghanwu/article/details/125979997。如果服务器中部署了docker,优先选用iptables。一、iptables【无需stop docker服务】docker容器与iptables冲突问题。-重启防火墙(修改配置后要重启防火墙)-设置iptables开机自启。-设置开放针对某ip的某端口。-安装iptables。-启动iptables。-关闭docker服务。-开启docker服务。-开启docker服务。

2024-07-05 16:38:51 503

原创 SaToken踩坑记录

使用satoken做权限认证后,无论是做全局的WebMvcConfigurer还是做局部的@CrossOrigin(originPatterns = "http://localhost:8000")都不起作用。使用satoken做权限认证后,knife4j的doc.html页面无法打开。一、与knife4j搭配使用。

2023-06-15 15:31:34 1898

原创 Cpp-Socket网络编程(十)客户端升级为select网络模型

1. 在服务器端加入,如果有新用户连接服务器端则向所有连接的客户端发送消息:if (FD_ISSET(_sock, &fdRead)) { FD_CLR(_sock, &fdRead); //4. 等待客户端连接accept sockaddr_in clientAddr = {}; socklen_t nAddrLen = sizeof(soc...

2019-08-03 12:28:26 391

原创 Cpp-Socket网络编程(九)服务器端升级为非阻塞select模型,处理更多业务

对于服务器而言,除了响应多个客户端的需求,还需要主动向推送消息,那么就提出了在select() 查询结束后如果没有其他数据可操作,服务器还可以做一些其他工作的需求,因此本篇将服务器端的select模型改造为非阻塞式的。mac OS环境下,select的声明如下,这里第五个参数代表了查询的超时时间,即查询数据时如果等待了__restrict所定义的时间后还没有数据就立即返回。int ...

2019-08-03 10:33:11 271

原创 Cpp-Socket网络编程(八)服务器端升级为select模型处理多客户端

之前学习的服务器端与客户端网络程序都是1对1的阻塞模式的网络程序,每次服务器端想要接收新的客户端连接时,都必须要新的客户端向服务器端发送连接;某一端想要调用recv函数接收数据时也必须要另一段真正的发送数据过来。那么当我们调用这些阻塞函数时,就必须要等待函数执行,不能进行其他的业务处理,服务器端就无法同时处理多个客户端的业务。为了令服务器端能够处理多客户端业务,这里使用select网络模型。s...

2019-07-28 23:10:17 267

原创 Cpp-Socket网络编程(七)网络消息接收长度问题

在复杂网络环境下,网络消息的长度并不总是固定的,网络数据包可分为固长数据、变长数据、粘包/拆包、少包/组包等情况。其中,粘包指,例如每次发送500字节数据到客户端或者服务端,但是由于网络延迟等原因,服务器端可能一次收到两个消息,即1000字节,也就是网络数据包粘在一起了,因此需要一个拆包的过程;分包指,例如一次发送1000字节数据,服务器端接收的时候,一开始只接收到500字节的数据,那么服务器端就...

2019-07-28 20:55:00 783

原创 Cpp-Socket网络编程(六)将多次收发报文数据升级为一次收发

1. 为命令CMD的枚举增加两个成员:enum CMD { CMD_LOGIN, CMD_LOGIN_RESULT, CMD_LOGOUT, CMD_LOGOUT_RESULT, CMD_ERROR};2. 使用继承的方式,令Login/Logout/LoginResult/LogoutResult结构体继承于DataHeader,并在Login...

2019-07-23 22:53:37 415

原创 Cpp-Socket网络编程(五)网络报文的数据格式定义及使用

1. 网络数据报文的格式定义:报文由包头和包体组成,其中:- 包头:描述本次消息包的大小,描述数据的作用- 包体:存放数据enum CMD { CMD_LOGIN, CMD_LOGINOUT};//包头struct DataHeader { short dataLength; //数据长度 short cmd; //命令};//包体...

2019-07-22 22:53:10 2153

原创 Cpp-Socket网络编程(四)发送结构化的网络消息数据(Mac OS环境)

本篇内容相比于(三)服务器端和客户端业务逻辑上没有变化,只是消息组织形式发生改变。之前消息采用纯字符串形式,纯字符串的消息优点是处理简易命令方便快捷,缺点是传递大量数据时字符串解析消耗大。本篇采用结构化的二进制数据流传输网络消息,需要严格的网络字节序一致,但是方便、消耗小、解析快。定义结构化数据(采用结构体):struct DataPackage { //字节序顺序和对齐要保持一致...

2019-07-22 21:31:11 269

原创 数据库隔离级别分析

数据库隔离级别(MySQL默认隔离级别是可重复读):1. read uncommitted 读取未提交数据:如果用户A正读取表t1,用户B对表t1作出修改但未提交,当用户A再次读取t1时,可以读到修改的数据。是隔离级别最低的情况,读取到未提交的数据,会造成脏读问题。2. read committed 读取已提交数据:如果用户A正读取表t1,并对t1作出修改,然后用户B再读取表t1,读取的数...

2019-07-21 18:03:10 108

原创 Cpp-Socket网络编程(三)建立能持续处理请求的C/S网络程序(Mac OS环境)

经过了网络编程(一)(二)的学习,完成了搭建简单的模型,但是:服务器端只能等待客户端的连接,向客户端发送一条数据,然后持续该循环;客户端只能在连接服务器之后接收服务器的数据,然后打印再退出。总结:这样的简单模型能够不停地处理客户端连接,但是不能处理复杂的业务,因此本篇对该简单模型进行改造,建立能持续处理请求的C/S网络程序。正式改造步骤:一、服务器端的改造拓展为八个步骤:建立一...

2019-07-21 16:17:05 386 1

原创 Cpp-Socket网络编程(二)简易客户端搭建(Mac OS环境)

0719:用socket API 四步建立客户端1. 建立一个socket2. 连接服务器3. 接受服务器信息recv4. 关闭套接字close socket//// client.cpp// SocketStepByStep//// Created by tower on 2019/7/19.// Copyright © 2019 tower. All r...

2019-07-20 23:44:06 709 2

原创 关于TCP三次握手的进一步分析

今天和小伙伴探讨了关于TCP的三次握手的特殊情况:TCP三次握手的第三个ACK丢了怎么办?(参考作者@john-zeng)正常情况:当客户端收到服务器端的SYN+ACK确认报文后,其状态变为ESTABLISHED,并发送ACK确认给服务器端。特殊情况:如果此时ACK丢失了,那么服务器端的状态变为SYN_RECV,并且等待3秒、6秒、12秒后重新发送SYN+ACK包给客户端(服务器端重发S...

2019-07-19 23:38:16 95

原创 实习记录——GDB调试

七月份开始的两周一直在做UT用例恢复,所谓UT用例恢复是指:针对版本A的代码编写了一套UT用例用于测试,后期版本更新,对于版本B的代码保留了大部分版本A的内容,但是也在此基础上做出了一些改进,为了使版本A的UT用例能够用于版本B,需要修改原有用例。由于UT的编译是在Linux环境下进行的,没有可视化的调试工具,因此当某处报错需要采用单步调试确定问题所在,这里的单步调试就是利用GDB实现的。...

2019-07-19 23:20:58 186

原创 Cpp-Socket网络编程(一)简易服务器端搭建(Mac OS环境)

写在前面:从今天正式开启学习网络编程,感谢@Evillla的推荐和安利,希望自己利用暑假的时间好好学习和消化网络编程相关知识,能在秋招中发挥到作用,收获心仪的offer!20190714:第一节 Socket基础API首先一幅图介绍Socket的基础API,可以理解为一个文件读写的过程:在客户端(前端)中,首先建立一个socket,类似于创建一个File*指针;连接服务...

2019-07-16 07:36:09 1603 1

原创 关于TCP四次挥手

今天看公众号编程珠玑推了TCP四次挥手的相关内容,想着打开复习一遍,在复习的过程中发现了一些新的问题,在此记录。首先回顾TCP四次挥手的几个步骤:客户端向服务器端发送释放报文FIN = 1,处于FIN_WAIT1状态;服务器端收到后发出确认,向客户端发送ACK = X + 1,处于CLOSED_WAIT状态。(此时TCP处于半关闭状态,服务器端可以向客户端发送数据,客户端不可以向服务器端发...

2019-07-15 20:56:02 157

原创 实习记录——git基本操作

前段时间做的代码整改完成了需要上库,今天借着上库的机会学了git的基本操作,首先介绍几个概念:gerrit:是一个可以进行代码review的网站,用于在代码入库之前对代码进行审阅。这在多成员团队合作的项目中是非常有效的,能够较好地控制代码的质量。git:是一种分布式的版本控制工具。repo:是git上开发的版本库管理工具,repo集中维护所有git库的清单,repo可以方便的从清单中获取g...

2019-06-24 22:52:45 251

原创 实习记录——代码整改

6.12正式开始实习,前两天基本都在领材料、报道、熟悉环境中度过,今天相当于正式开始步入正轨了,第一份任务是代码整改,顾名思义就是按照编程规范和代码安全规范对已写代码进行整改使其满足入库要求,初次之外,导师还通知我月底需要参加部门的考试,通过考试后才有资格将写的代码入库。这样一来,手头上的事情还是比较多的,一方面要完成被分配的任务,一方面要准备考试,另外一方面还要认真复习迎接秋招,对于这样满档的安...

2019-06-14 23:36:10 479

原创 C++ vector存放结构体类型的变量

今天做题的时候遇到一个问题,自定义point类型的结构体作为vector的类型,并按x的大小进行排序。#include <iostream>#include <vector>typedef struct Point{ int x; int y;}point;bool cmp(point p1, point p2){ return p...

2019-05-15 21:17:23 10174

原创 实时渲染学习(十一)渲染加速算法总结

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(十二) 渲染管线优化方法论:从瓶颈定位到优化策略前言这是作者关于《Real-Time Rendering》这本书提炼的最后一章,主要讲渲染管线的优化。学习这个专栏已经有半个月的时间,通过作者中文版的提炼,让我能迅速了解实时渲染的核心知识,虽然理解的还不够深入。图形学是一个非常有趣的学科,要学好图形学也必然要付出很多努力...

2019-04-24 22:20:34 923

原创 实时渲染学习(十)渲染加速算法总结

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结前言本章主要介绍了一些加速渲染算法,个人认为了解这些加速技术还是很重要的。本章知识概览:常用空间数据结构(Spatial Data Structures)1)层次包围盒(BVH ,Bounding Volume Hierarchies)2)BSP树(BSP T...

2019-04-23 22:47:39 5931

原创 实时渲染学习(九)非真实感渲染(NPR)相关技术总结

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(十) 第十一章 · 非真实感渲染(NPR)相关技术总结前言大体浏览了本章内容,主要介绍模拟艺术绘制风格的非真实感渲染,不是我当前学习和关注的领域,所以本章内容就简单记录,有需要深入了解的朋友可以点击文章顶部的原博链接查看。本章知识概览:非真实感渲染的基本思想和相关领域卡通渲染轮廓描边的几种实现流派1)基于视...

2019-04-22 22:31:53 2464

原创 实时渲染学习(八)游戏开发中基于图像的渲染技术总结

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结前言最近比较忙,所以好几天没更新。言归正传,本章内容主要是游戏开发中用到的技术,因为我本身游戏玩的比较少,所以产生的共鸣也不是很多,简要浏览了原文,本章内容就在原文基础上做简要总结吧。本章知识概览:渲染谱 The Rendering Spectrum固定视角的渲...

2019-04-21 22:15:31 1331

原创 实时渲染学习(七)全局光照:光线追踪、路径追踪与GI技术进化编年史

参考博文【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史前言本章知识概览:全局光照的基本概念全局光照的算法主要流派全局光照技术进化编年史光线追踪 Ray Tracing路径追踪 Path Tracing光线追踪、路径追踪、光线投射的区别环境光遮蔽 Ambient Occlusion一、全局光...

2019-04-17 22:46:29 11747 3

原创 实时渲染学习(六)延迟渲染(Deferred Rendering)

参考博文【《Real-Time Rendering 3rd》 提炼总结】(七) 第七章续 · 延迟渲染(Deferred Rendering)的前生今世前言本章知识概览:延迟着色/延迟渲染的概念 Deferred Shading / Deferred Rendering几何缓冲区 G-buffer延迟渲染的渲染过程延迟渲染 vs 正向渲染延迟渲染的优缺点延迟光照 Light Pr...

2019-04-16 22:39:50 2532

原创 实时渲染学习(五)高级着色:BRDF及相关技术

参考博文【《Real-Time Rendering 3rd》 提炼总结】(六) 第七章 · 高级着色:BRDF及相关技术,部分参考计算机图形学 读书笔记(二) BRDF双向反射分布函数这一章物理和数学概念比较多,作者原博整理的很好,这里我就不多赘述了,这篇主要记录读后感和关于BRDF比较基础的内容以及我的理解。一、理论基础球面坐标 Spherical Coordinate立体角 Soli...

2019-04-15 22:37:36 2383

原创 实时渲染学习(四)纹理贴图及相关技术

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(五) 第六章 · 纹理贴图及相关技术概念导览:纹理管线 The Texturing Pipeline投影函数 The Projector Function映射函数 The Corresponder Function体纹理 Volume Texture立方体贴图 Cube Map纹理缓存 Texture Ca...

2019-04-14 22:56:26 1030

原创 实时渲染学习(三)图形渲染与视觉外观

参考博文:【《Real-Time Rendering 3rd》 提炼总结】(四) 第五章 · 图形渲染与视觉外观 The Visual Appearance一、光照与材质光源主要分为:平行光源、点光源和聚光灯。材质附加到场景中的模型上可以描绘对象外观,每个材质都和一系列shader、纹理以及其他属性联系在一起,用来模拟光与材质的相互作用。1.1 光的散射与吸收一般而言,所有光物质相互作用...

2019-04-13 22:36:55 1256

原创 实时渲染学习(二)GPU渲染管线与可编程着色器

写在最开始:参考博文:【《Real-Time Rendering 3rd》 提炼总结】(三) 第三章 · GPU渲染管线与可编程着色器注意区分图形渲染管线和GPU渲染管线。图形渲染管线包括应用程序阶段、几何阶段和光栅化阶段(详情见实时渲染学习(一)图形渲染管线概括与总结)。而GPU渲染管线包括:顶点着色器(可编程)曲面细分着色器(可选,可编程)几何着色器(可选,可编程)裁剪(可配置...

2019-04-12 22:38:58 646

原创 实时渲染学习(一)图形渲染管线概括与总结

参考博文:https://zhuanlan.zhihu.com/p/26527776(【《Real-Time Rendering 3rd》 提炼总结】(二) 第二章 · 图形渲染管线 The Graphics Rendering Pipeline)一、图形渲染管线简述图形渲染管线分为三个阶段:应用程序阶段 几何阶段 光栅化阶段二、应用程序阶段通过软件方式实现,实现方法包括碰撞...

2019-04-11 22:53:50 1511 2

原创 *p++、*(p++)、(*p)++、*++p、++*p的区别

*p++、*(p++)、(*p)++、*++p、++*p的区别最近在刷题的时候遇到前缀自增、后缀自增以及取值符号之间的组合问题,这里记录一下:问题提出之前我一直理解的是前缀++优先级高于后缀++,然后我在翻阅C++优先级顺序表时却发现后缀++的优先级其实是高于前缀++和*的,但是为什么我们通常都说后缀++是等当前表达式完成再自增呢?解答然后我看了Effective C++发现:也就是...

2018-12-17 10:40:24 22955 16

原创 Unity3D实现二维物体的来回移动

最近在做一个小游戏,需要写场景中物体的来回移动的脚本,在这里记录一下。using System.Collections;using System.Collections.Generic;using UnityEngine;public class BeltMove : MonoBehaviour{ //移动距离 public float dis; //移动速...

2018-11-08 20:38:55 3347

原创 求二进制中的1/0的个数

设x为二进制数1111 1111 1111 1010,则求x中0的个数操作:int countofZero(int x){ int N = 0; while (x + 1) { N++; x |= (x + 1); } return N;}求x中1的个数操作:int countOfOne(x){ ...

2018-10-19 11:31:23 745

原创 CPU与GPU并行计算联系与区别

最近在做利用GPU实现并行渲染的工作,前天同学问我CPU和GPU在多线程和并行计算方面的区别具体是什么,虽然做了几个月这方面的工作,但我一下子答却不知道从何答起,因此在这里做一下整理。一、CPU和GPU的区别(图片来源于网络,文字参考(侵删):https://www.renderbus.com/share/post-id-1478)CPU((Central Processing Uni...

2018-10-12 15:27:13 28497

原创 C++实现尺取法——以彩色宝石项链为例

今日份的牛客网刷题,刷到一条在线编程题,彩色宝石项链,评论区一条高分答案写的很好,采用尺取法,在博客记录一下~题目描述有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种...

2018-10-11 13:16:49 617

原创 C++实现动态规划算法——袋鼠过河问题

参考:动态规划知识点:https://blog.csdn.net/misayaaaaa/article/details/71794620动态规划经典案例:https://blog.csdn.net/misayaaaaa/article/details/71940779最近在刷牛客网的编程题,首次接触动态规划问题(编程萌新),看了网友的答案和一些博客关于动态规划问题的介绍,因此整理一篇文...

2018-10-09 14:58:02 1934

原创 C++数组 用printf打印出来为0 而用cout打印可正常显示数值

首先,定义一个二维数组:targetBuffer = (int **)malloc(1052 * sizeof(int *));       for (int i = 0; i &lt; 1052; i++)        targetBuffer[i] = (int *)malloc(1473 * sizeof(int));在赋值之后,想打印该数组之中不为0的数值,首先采用了printf打印方法...

2018-03-14 14:26:10 2837

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除