通协议中的消息
对游戏项目而言,我们通常会使用TCP进行前后端的通信协议开发,TCP是字节流协议,所以还需要在网络代码里把TCP字节流解析成应用层需要的一条一条消息(message)。
一条消息包含消息ID和消息内容(payload)。
消息ID主要用于告知业务代码后续的二进制payload应该解析成什么样的结构,通常为了节省流量,消息ID使用整数表示。
一般而言,我们的软件版本号通常会包括一个编译版本号。如果你的代码使用版本控制系统进行管理(很多开发者都是这么做的),这个编译版本号可以是我们版本控制系统的提交版本。
如果我们使用 Git 进行管理,这个版本号会是一个 40 位的 SHA-1 的哈希值。不过,要是我们的软件版本号添加这么一个 40 位长的字符串,显然是不合适的。所以我们一般会取前 7 位——如果这样还不能标识出唯一版本,那么就取前 8 位等等。不过,手动去修改这个值当然是不合适的,我们有更简便的方式。这就是本文所要介绍的内容:使用 Git 生成这个编译版本号。
继续阅读 »
10 月 17 日消息,据 Neowin 报道,在几天前,VMWare 发布了 16.2.0 版本更新,但是黑暗模式出现了问题,VMWare 已经承认了这一点,并将很快发布修复程序。
值得一提的是,官方的更新日志并没有提到,在更新中,VMWare 还添加了对Win11软件级别 TPM 的支持。
此前,如果用户一直在启用 TPM 的 VMware Workstation Pro 中使用 Win11 虚拟机,用户必须为每个加密的 VM 设置和输入密码。但是本次更新之后,用户可以移除加密,并加入软件级 TPM 标志来代替,不必每次都要输入密码。
如果你在 Windows 中用 BitLocker 进一步加密虚拟机,可能需要在执行下面的步骤前先解密驱动器。
如果你已经在Windows 10或 11 中添加了 TPM:
确保你已经更新到 16.2.0 版本。
继续阅读 »
1,下载
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12-winx64.zip
2,解压
将mysql-8.0.12-winx64.zip解压到C:\Program Files\MySql目录下
3.在C:\Program Files\MySql\mysql-8.0.12-winx64目录下新建my.ini文件
需要修改的配置项有basedir-数据库安装目录,datadir-数据存放目录
继续阅读 »
之前写过一个goland本地调试,为什么可以本地调试还要远程调试呢?
首选声明一点,本地调试是首选,如果可以本地调试,那自然是本地调试最方便。
但是,本地环境和实际环境很多时候是不一样的,很难在本机搭建出与线上完全相同的环境,比如我们想调试数据库、调试rpc、调试服务注册发现,这些线上都是现成的,但在我们本机就很难复制,再比如线上的网络和我们本机的网络环境是不一样的,这些场景下本地调试均无法满足我们的需求,需要把我们的程序部署在线上环境,才能测试。
之前不知道远程调试,我都是改好了程序,push到git上,然后到线上的机器pull下来,编译,运行,看日志。。。一方面,每次改完程序想测试一下,很繁琐,另一方面,完整的开发完一个feature,产生了几十次commit。。。
好在,goland有远程调试功能!
有了远程调试,在goland写完代码,直接同步到远端机器,然后点小虫子按钮调试,然后设断点。。。嗯,就基本上跟本地调试一样方便了。
在说具体配置方式之前说明几点:
1.配置过程不需要翻墙,配置过程中会从github下载一些东西,会很慢,但是可以!
2.本地的gopath和远端机器不需要一致,go版本也不需要一致,如果你本地和远端都有go环境,无需做任何调整!
总之就是,配置成本不高,很easy~
继续阅读 »
当我们第一次用goland打开一个工程时,右上角的运行还有调试按钮都是灰色的,就是点不了的。为什么点不了呢?
如果是你打开的是一个文件,goland可能会默认你想go run这个go文件,但是一个工程里有一大堆go文件,goland并不知道你是想运行其中某一个go文件,还是想把这一堆文件编译成一个二进制文件然后再运行,我们通常要做的事是后者。
这个时候,我们就要配置一下,告诉goland当我们点击运行或者调试的时候,是想做什么。配置就是点这个:
点开是下面这样的:
继续阅读 »
一、系统:Centos6.3 64位
二、方法:读取/var/log/secure,查找关键字 Failed,例如(注:文中的IP地址特意做了删减):
Sep 17 09:08:09 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:08:20 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:10:02 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2
Sep 17 09:10:14 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2
从这些行中提取IP地址,如果次数达到10次(脚本中判断次数字符长度是否大于1)则将该IP写到 /etc/hosts.deny中。
继续阅读 »
近期评论