5 大囚长

尚未进行身份认证

我要认证

你今天所做的一切决定了你的明天。

等级
TA的排名 784

网游消息同步

游戏中的通信协议和传统的协议没有太多不一样的地方,只不过游戏会有一些习惯做法。按照游戏需求来设计协议就好了。如果没经验不清楚具体场景,以下做个抛砖引玉:游戏登录初始化客户端通常会在这一步先把一些环境参数传递给服务端,如用户ID、Token(接入第三方运营商的可能会有)、时间截等。登陆向游戏服务器发起登陆请求,用户名,Token, 此时可能会附带要登录的区/服ID.游戏副本请求进入副本客户端携带需要进入的副本ID,向服务端请求进入。服务端检查玩家是否符合进入条件,符合的情况下会为副本分配内存

2020-09-27 11:43:20

UID卡、IC卡、ID卡、CUID 卡、FUID 卡、UFUID 卡 有什么区别?

生活中,我们经常用到门禁卡、考勤卡、电梯卡还有停车卡,这些功能是怎么实现的呢?这是靠卡里封装的芯片和线圈来实现各种功能,不同的芯片频率、容量、读写性各不相同,常见的是IC卡还有ID卡。还有一种叫UID的卡,许多客户不了解UID卡是什么?有什么功能,和IC卡、ID卡有什么区别?本文德健智能科技小编就为大家介绍UID卡。先了解下IC卡、ID卡的定义ID卡全称身份识别卡,是一种不可写入的感应卡,含固定的编号。频率是125KHz,属于低频。一般用于门禁。IC卡全称集成电路卡,又称智能卡。可读写,容量大,有加密

2020-09-24 09:58:57

github awesome集锦

详情见https://github.com/topics/awesome数据来源Instant Data Scraper前60个项目

2020-09-22 14:36:22

【MifareClassicTool】小米NFC手机模拟加密门禁详细教程(Android手机通用)

mifare官方最新版地址https://www.icaria.de/mct/releases/3.0/· 资源名称:MifareClassicTool· 资源分类:Android NFC类软件· 资源大小:960.5 Kb· 资源版本:V2.2.3准备工具:①、MifareClassicTool 安卓NFC经典工具(本贴下方链接提供);②、小米带NFC手机(本人用Mi Note3测试,其它机型未测试);③、淘宝一张CUID白卡(简化一点说明:原加密卡经软件解密后写入此CUID白卡后变成.

2020-09-22 10:34:02

linux API函数大全

还没有认真研读过,今晚在其他博客上找了比较久,今晚时间也不多了,等有空再细看 先复制先 获取当前执行路径:getcwd1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNet...

2020-09-16 14:06:17

go get国内源

前言#Go语言学到 Gin 框架了, 其实每天学习是比较辛苦的事情, 坚持下去!在使用 Go 过程中发现, 最无奈的是Go的一些模块下不下来, 即便挂了V, 油管2k不卡的那种, 依旧是 time out, 本文通过修改源为国内源的方法来规避此问题正文#推荐使用的两个, goproxy.cn 和 goproxy.io连接分别是https://goproxy.cnhttps://goproxy.io以下以cn举例,如想更换io步骤一样只是网址不一样可直接跳转至 github 地...

2020-09-11 14:59:08

SecureCRT无法登录Ubuntu服务器

SecureCRT版本Version 6.1.4 (build 489)Ubuntu20 OpenSSH_8.2p1登录显示Key exchange failed. No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp

2020-09-10 22:34:55

golang文件上传服务器

现在nginx大行其道,一般在机器上装个nginx 简答配置下就可以做upload用了。主要需求是开发那边需要运维这边投递一些app_log和一些history log。下面讲解下直接用curl命令上传。第一种:server端有现成的ftpserver:上传的option是 -T比如我们向ftp传一个文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/curl -T hadoop_oom.log -u user:1234

2020-09-08 13:31:08

导数公式一览表

2020-08-26 16:57:47

sigmoid函数求导

回顾原由:在推荐系统中,排序阶段会用到逻辑回归,那自然要在温习下Sigmoid函数求导过程。Sigmoid函数:在对Sigmoid函数求导,还需回顾4个求导知识点(只有一点数学公式,不用紧张,你一定可以看懂):    1、为什么要对Sigmoid函数求导?其实就是求极值。2、 进行求导等于 3、进行求导等于4、复合函数求导:f(g(x))' = ,例如:,那么就是g(x)Sigmoid求导过程:’ =     &nbs

2020-08-26 16:54:38

使用python绘制sigmoid函数

import matplotlib.pyplot as pltimport numpy as np def sigmoid(x): # 直接返回sigmoid函数 return 1. / (1. + np.exp(-x)) def plot_sigmoid(): # param:起点,终点,间距 x = np.arange(-8, 8, 0.2) y = sigmoid(x) plt.plot(x, y) plt.show() .

2020-08-26 16:18:24

为node_exporter添加新的自定义collector

相对于使用python+flask等方式生成metric更加鲁棒,也占用了更少的资源,同时让部署更加方便和集中,不失为一种规模管理集群监控的好方法首先安装golang,保证版本为最新即可wget https://studygolang.com/dl/golang/go1.14.7.linux-amd64.tar.gz关于go env设置不再赘述安装git工具,保证git工具为最新yum install git -y从github下载node_exporter得项目go get gith.

2020-08-11 17:19:18

grafana配置alertmanager渠道实现微信报警

- 安装grafana- 安装prometheus- 安装node_exporter- 安装alertmanager- 配置微信消息应用(参考我之前写的文章)只贴出必要得配置文件,不再赘述安装过程prometheus得配置/etc/prometheus/prometheus.yml# my global configglobal: scrape_interval: 15s # By default, scrape targets every 15 seconds. eval

2020-07-31 14:40:21

724运维日

运维的标准要求记录详细响应迅速处置及时备份完善监控齐全服务稳定性能优化防微杜渐保障安全我自己总结的,说苦逼也苦逼,大半夜被电话揪起来处理服务器问题是不算加班的,第二天能让你晚点上班就算仁慈了,如果碰上棘手的故障一般一熬就是一个通宵。有一年提心吊胆的熬了好多个夜,老眼昏花,在地铁上都眼冒金星,身体各种不舒服,压力山大,如果不是生活所迫真的希望不再干这行了。看到有小同学地铁站上拿着笔记本敲敲敲,我心里就暗笑,看起来就像刚入行不久吧,都是我们玩剩下的,现在即便公司配发笔记本都不带的,一个

2020-07-24 10:30:45

RUST学习

main.rsmod ext_mod;#[derive(Debug)]struct Person { name: String, age: i32, job: String}impl Person { fn info(&self) -> String { let info = format!("name: {}\nage: {}\njob: {}", self.name, self.age, self.job); i

2020-07-21 13:32:00

Rust 并发编程

Rust 并发编程安全高效的处理并发是 Rust 诞生的目的之一,主要解决的是服务器高负载承受能力。并发(concurrent)的概念是只程序不同的部分独立执行,这与并行(parallel)的概念容易混淆,并行强调的是"同时执行"。并发往往会造成并行。本章讲述与并发相关的编程概念和细节。线程线程(thread)是一个程序中独立运行的一个部分。线程不同于进程(process)的地方是线程是程序以内的概念,程序往往是在一个进程中执行的。在有操作系统的环境中进程往往被交替地调度得以执行,线程则在进程以内由程

2020-07-21 12:56:28

Rust 面向对象

Rust 面向对象面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。Rust 不是面向对象的编程语言,但这些功能都得以实现。封装封装就是对外显示的策略,在 Rust 中可以通过模块的机制来实现最外层的封装,并且每一个 Rust 文件都可以看作一个模块,模块内的元素可以通过 pub 关键字对外明示。这一点在"组织管理"章节详细叙述过。"类"往往是面向对象的编程语言中常用到的概念。"类"封装的是数据,是对同一类数据实体以及其处理方法的抽象。在 Rust 中,我们可以使用结构体或枚举类来实

2020-07-17 16:37:25

Rust 集合与字符串

Rust 集合与字符串集合(Collection)是数据结构中最普遍的数据存放形式,Rust 标准库中提供了丰富的集合类型帮助开发者处理数据结构的操作。向量向量(Vector)是一个存放多值的单数据结构,该结构将相同类型的值线性的存放在内存中。向量是线性表,在 Rust 中的表示是 Vec<T>。向量的使用方式类似于列表(List),我们可以通过这种方式创建指定类型的向量:let vector: Vec<i32> = Vec::new(); // 创建类型为 i32 的空

2020-07-16 15:49:30

Rust 文件与 IO

Rust 文件与 IO本章介绍 Rust 语言的 I/O 操作。接收命令行参数命令行程序是计算机程序最基础的存在形式,几乎所有的操作系统都支持命令行程序并将可视化程序的运行基于命令行机制。命令行程序必须能够接收来自命令行环境的参数,这些参数往往在一条命令行的命令之后以空格符分隔。在很多语言中(如 Java 和 C/C++)环境参数是以主函数的参数(常常是一个字符串数组)传递给程序的,但在 Rust 中主函数是个无参函数,环境参数需要开发者通过 std::env 模块取出,过程十分简单:实例 fn

2020-07-16 11:22:42

Rust 生命周期

Rust 生命周期Rust 生命周期机制是与所有权机制同等重要的资源管理机制。之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。引用是对待复杂类型时必不可少的机制,毕竟复杂类型的数据不能被处理器轻易地复制和计算。但引用往往导致极其复杂的资源管理问题,首先认识一下垂悬引用:实例 {    let r;    {        let x = 5;        r

2020-07-14 16:41:24

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。