自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昔拉的博客

站在巨人肩膀上看世界,就不会让能力一成不变

  • 博客(565)
  • 资源 (4)
  • 收藏
  • 关注

原创 任务12:3-8退出组队

按钮绑定的事件向服务器发送退出消息

2021-03-02 15:15:09 104

原创 任务11:3-7 申请匹配

服务器发送申请匹配消息申请匹配处理函数取消匹配UI响应事件

2021-03-01 22:59:25 84

原创 任务10:申请组队

注册事件ID:绑定事件:收到服务器消息广播切换界面的事件:

2021-03-01 17:30:48 125

原创 任务9:消息接收处理

消息接收类:消息处理类:

2021-03-01 16:03:53 117

原创 跨服通信设计

登陆时客户端知道当前玩家所在区服(一般封装到玩家唯一UID中)当处理跨区服业务逻辑时,如加好友,发邮件等,先根据UID判断玩家是否在本区服中如果不在则向global、center等之类中转服发送消息,通过中转服再将消息发送至对方所在服。...

2020-12-30 17:15:21 339

原创 Linux下使用svn创建仓库

假设已经Linux搭建了svn服务器创建仓库语法:svnadmin create /directory我是在 /data/svnrepos下新建myproject仓库cd /datamkdir svnrepossvnadmin create /data/svnrepos/myproject仓库创建成功以后,会出现一个仓库名字的文件夹 文件夹下面有以下几个文件和目录myproject|-conf|-db|-format|-hooks|-locks|-README.txt其中c

2020-11-12 10:23:31 577 1

原创 C++的编译过程详解

C/C++编译过程C/C++编译过程主要分为4个过程编译预处理编译、优化阶段汇编过程链接程序一、编译预处理(1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的 Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。 这些伪指令的引

2020-10-10 10:37:06 4414 2

转载 TCP的拥塞控制(详解)

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。当输入的负载到达一定程度 吞吐量不会增加,即一部分网络资源会丢失掉,网络的吞吐量维持在其所能控制的最大值,转发节点的缓存不够大这造成分组的丢失是拥塞的征兆。TCP的四种拥塞控制算法1.慢开始2.拥塞控制3.快重传4.快恢复假定:1.

2020-10-09 10:04:01 1709

转载 页面置换算法详解(10种)

如果对于虚拟内存,页表,分页等技术还是一知半解的道友可以参考我之前写的一篇博客: 虚拟内存、分页以及页表,建议读者从头往后读,有的页面置换算法是对前面页面置换算法的修改或者性能提升。当发生缺页中断时,操作系统必须在内存中选择一个页面将其换出内存,以便为即将调入的页面腾出空间。1. 最优页面置换算法 此算法不可能实现。在发生缺页中断的时候,在内存中的页面有的很快就会被访问,而有的页面可能要到10、100、1000条指令后才会被访问。此时要置换最迟被访问的页面,把因调用被替换的页面而引起的中断推迟到将

2020-09-30 09:39:10 9690 1

转载 TCP的快速重传机制

一、快速重传机制上一篇讲到了TCP 的超时重传,但是超时重传往往会带来许多微妙的问题,比如说:当一个报文段丢失时,会等待一定的超时周期然后才重传分组,增加了端到端的时延。当一个报文段丢失时,在其等待超时的过程中,可能会出现这种情况:其后的报文段已经被接收端接收但却迟迟得不到确认,发送端会认为也丢失了,从而引起不必要的重传,既浪费资源也浪费时间。幸运的是,由于TCP采用的是累计确认机制,即当接收端收到比期望序号大的报文段时,便会重复发送最近一次确认的报文段的确认信号,我们称之为冗余ACK(duplic

2020-09-30 09:33:19 1653 3

原创 任务8:设置服务器信息

init用于设置服务器信息update用于连接服务器处理消息

2020-09-07 22:01:22 163

原创 任务7:按钮触发事件(客户端篇)

按钮触发事件实现步骤定义按钮实现脚本方法(要让按钮执行函数一定是public公开的)给按钮挂载box collider和ui button添加gameStart object挂载gameStart脚本ui button中的on click放入game start对象并设置方法...

2020-08-31 16:17:40 252

原创 任务6:事件机制使用范例(客户端篇)

创建study文件夹在文件夹中创建两个C#脚本UserEventEnum脚本定义事件IDEventTest创建事件监听(绑定ID与要执行的函数)EventTest1脚本中实现广播将两个脚本挂载到unity对象中在update函数中进行广播为了先执行监听函数添加处理消息的事件ID添加处理消息的事件函数和监听广播处理消息事件PS:使用事件就不需要在类中创建类去调用函数了,降低了类与类之间的耦合度...

2020-08-31 11:49:24 151

原创 任务5:事件机制(客户端篇)

事件机制事件定义事件注册事件广播

2020-08-28 16:25:19 142

原创 任务4:选择服务器界面(客户端篇)

选择服务器界面效果图插入选择背景图片插入左侧窗口及滚动条面板滚动条面板上加入scroll view插件插入滚动区域图片插入滚动区域文字加入grid布局给item加入drag拖动及碰撞体动态生成各个item去掉重复的调整ui root像机范围完成右侧及中部布局...

2020-08-28 15:37:56 261

原创 任务3:登录界面搭建(客户端篇)

登录界面:插入panel根面板插入背景插入左中右三个面板左面板插入两个label右面板插入注销文字和图片插入开始游戏图片和文字插入区服文字和图片最后插入底部文字

2020-08-28 14:13:35 177

原创 任务2: NGUI插件详解(客户端篇)

NGUI简介:打开框架中的login场景:login场景视图导入NGUI包插入panel面板控件(所有ui都要放在panel面板上)UI根结点缩放类型:label控件sprite控件用于插入背景等图片sprite按钮选择背景图size中设置大小depth设置控件叠放层次notify:挂载脚本某一个对象类中的方法为了使button生效需要插入box collider碰撞体滚动条控件ui grid布局控件...

2020-08-26 17:02:10 249

原创 任务1: 王者荣耀游戏介绍

王者荣耀介绍客户端服务器所用到的技术游戏框架的选用学习开发方法开发软件下载地址Unity 官方下载链接:https://unity3d.com/cn/get-unity/download;VisualStudio官方下载链接:https://visualstudio.microsoft.comVisualStudioCode官方下载链接:https://visualstudio.microsoft.comNodeJS 官方下载链接:https://nodejs.orgThanos游戏

2020-08-26 11:29:03 593 2

原创 微信支付宝SDK接入服务器开发篇

文章目录023 服务器的工程结构024 封装支付事件025 网络模块的封装026 完成辅助类027 支付宝服务器组件的实现028 微信支付服务器029 服务器部署030 对IP使用的详细说明031 客户端支付宝功能的修正032 获取应用签名和测试所有功能023 服务器的工程结构024 封装支付事件025 网络模块的封装026 完成辅助类027 支付宝服务器组件的实现028 微信支付服务器029 服务器部署030 对IP使用的详细说明031 客户端支付宝功能的修正032 获取应用签名和测试

2020-08-18 09:49:17 2893

原创 微信支付宝SDK接入unity的开发篇

013 unity工程结构014 封装C#微信中间件015 支付宝中间件的封装016 完成demo入口场景

2020-08-06 00:31:24 3111 3

原创 9-11 萃取(traits)技术概念、范例等(未归类知识点)

040类型萃取_迭代器萃取#include<iostream>#include<iostream>#include<cstdlib>#include<functional>#include <vector>#include <algorithm>#include <list>using namespace std;template <typename T>void printTraitsI

2020-07-25 16:32:46 225

原创 9-10 可变参数函数、initializer_list、省略号形参(未归类知识点)

039可变参数列表initializer_list和可变参点点点类型#include<iostream>#include<iostream>#include<cstdlib>#include<functional>#include <vector>#include <algorithm>#include<initializer_list>#include<stdarg.h>//...的头文件us

2020-07-25 16:32:09 272

原创 9-9 lambda表达式捕获模式的陷阱分析和展示(未归类知识点)

035lambda常见陷阱_捕获列表中的引用_局部变量超出作用域#include<iostream>#include<iostream>#include<cstdlib>#include<functional>#include <vector>#include <algorithm>#include <ctime>using namespace std;//全局变量,每个元素都是function,每个元素

2020-07-25 16:31:24 565

原创 9-8 lambda表达式,for_each、find_if简介(未归类知识点)

028lambda表达式和捕获列表#include<iostream>#include<cstdlib>using namespace std;class CT{public: int m_i; void myFunction(int x,int y) { auto mylambda01 = [this]()//=或者&默认就有this访问 { return m_i;//因为前面已经有this,访问合法 }; }};int ma

2020-07-25 16:11:21 444

原创 9-7 可调用对象、std function、std bind(未归类知识点)

021可调用对象#include<iostream>#include<cstdlib>using namespace std;void myFunciton(int value){ cout << "myFunciton函数执行了" << endl;}class TESTCLASS{public: void operator()(int value) { cout << "这是类中重载了()运算符的函数执行了" &

2020-07-25 16:09:17 535 2

原创 9-6 详解decltype含义,decltype主要用途(未归类知识点)

014decltype含义和举例_用于推导类型#include<iostream>#include<cstdlib>#include <functional>using namespace std;class CT{public: int i; int j;};int testFunction(){ return 10;}const int&&myfunctionTest(void){ return 0;}i

2020-07-25 16:07:10 2377

原创 9-5 理解auto类型推断,auto应用场合(未归纳知识点)

009auto类型常规推断#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;//显示参数类型,这里不研究boost库template<typename T>void myFunction01(T&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的{ using boost::type

2020-07-25 09:23:13 471

原创 9-4 引用折叠,转发、完美转发,forward(未归类知识点)

005引用折叠规则与引用的引用#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;template<typename T>void myFunction01(T &&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的{ using boost::typeindex::type_id_

2020-07-25 09:21:40 290

原创 9-3 理解模板类型推断、查看类型推断结果(未归类知识点)

004理解模板类型参数_查看类型推断结果#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;//显示参数类型,这里不研究boost库template<typename T>//void myFunction01(T&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的void myFunct

2020-07-25 09:19:54 294

原创 9-2 万能引用universal reference(未归类知识点)

003万能引用#include<iostream>#include<cstdlib>using namespace std;template <typename T>void myFunction(const T&value)//value的类型是const T&{ return;}void myFunction02(int&& tem)//参数是右值引用类型{ cout << "右值引用函数" &l

2020-07-25 09:19:04 236

原创 9-1 函数调用运算符、function类模板(未归类知识点)

001重载()函数对象#include<iostream>#include<cstdlib>using namespace std;void myFunction(int a_i){ cout << "这是我自定义的函数myFunction" << endl; return;}//类实现的功能:返回一个大于等于0的数字,如果小于0,返回0class BiggerThanZero{public: //带一个参数的构造函数 Big

2020-07-12 23:38:16 196

原创 8-8 适配器概念、分类、范例及总结

008适配器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include <functional>using namespac

2020-07-12 21:50:18 220

原创 8-7 函数对象回顾、系统函数对象及范例

007可调用队形与标准库中定义的可调用对象#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include<functional>u

2020-07-12 20:41:36 185

原创 8-6 算法概述、内部处理、使用范例

006算法概述与一些典型的算法应用举例#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include<algorithm>usi

2020-07-12 20:40:29 426

原创 8-5 迭代器的概念和分类

005迭代器概述与迭代器分类#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>using namespace std;//(3)验证迭代器所属种

2020-07-12 20:39:32 270

原创 8-4 分配器概述、使用,工作原理说

004分配器的概念和一个简单分配器原理核心代码#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <list>using namespace std;int main(void){ //list<int, std::allocator<int>>myLis

2020-07-12 20:38:04 1029

原创 8-3 容器的说明和简单应用例续

003deque和stack一些常见的容器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include<queue>#include<map>#include <set>#include <unordered_set>using namespace std;

2020-07-12 20:37:21 146

原创 8-2 容器分类,array、vector容器精解

001容器分类和array容器的使用#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <array>using namespace std;int main(void){ //包含5个元素的数组 array<string, 5>mystring = { "fsdfd

2020-07-11 00:46:31 194

原创 8-1 STL总述、发展史、组成,数据结构谈

000STL概述/* * (1)一些概念 * 1.c++标准库 standard library c++编译器自带,可以在代码中包含头文件直接使用。 * 引入的目的就是解决一些反复使用的功能,我们直接使用即可。 * 2.c++标准模板库,STL=standard template library。包含在c++标准库中,是c++标准库的核心。 * STL深刻影响着c++标准库 * 3.泛型编程 generic programming 使用模板template为主要的编程手段来编写代码。 *

2020-07-11 00:44:53 249

原创 6-13 补充知识、线程池浅谈、数量谈、总结

一:补充知识1.1、虚假唤醒: wait中要有第二个参数(lambda)并且这个lambda中要正确判断要处理的公共数据是否存在;wait(),notify_one(),notify_all()1.2、atomic+=是原子操作,a=a + 1不是cout<<atm<<endl; //读atm是个原子操作,但是整个这一行代码并不是个原子操作;atomic atm;atm = 0;auto atm2 = atm; //这种定义时初始化操作不允许,显示”尝试引用已删除的函

2020-07-09 15:13:48 174

Unity接入微信登录 微信分享 微信支付 支付宝SDK

Unity接入登录 分享 支付 支付宝SDK

2020-08-04

MFC程序观察内存泄漏.rar

MFC程序观察内存泄漏

2020-06-25

服务器业务逻辑测试.rar

用于服务器自测业务逻辑数据发送是否正常的简易客户端代码,非商业性代码仅供服务器开发人员自测.~~~~

2020-04-04

客户端连接服务器并发送数据测试.rar

服务器专用客户端协议测试工具,可以连接到指定服务器并进行简单的收发包,主要用于测试服务器接收数据是否正常

2020-03-21

空空如也

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

TA关注的人

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