Albert World


  • 首页

  • 归档

  • 标签

  • 分类

  • 工具

  • 关于

  • 搜索

结构体sockaddr、sockaddr_in、sockaddr_in6之间的区别和联系

发表于 2018-07-10 | 更新于 2019-11-17 | 分类于 Network |
热度 ℃
  |   字数统计: 1,625(字)   |   阅读时长: 7(分)

前言

最近在学习网络相关的知识,虽然之前代码写了不少,但是长时间不写难免会忘记,简单地复习了一下IO多路复用的方式,对比了解了一下epoll模式和select模式的异同,不过写代码的时候发现,这个socket连接中有几个结构还是挺让人头大的,用着用着突然就强转成其他的类型了,加上年前改了半天IPv6的连接,这几个结构体更加混乱,所以今天角色放到一起,从源码的角度看一下sockaddr、sockaddr_in、sockaddr_in6这三个结构体之间的联系,以及为什么有些情况可以直接强转。

阅读全文 »

VS2015调试dump文件时提示未找到xxx.exe或xxx.dll

发表于 2018-06-23 | 更新于 2019-11-17 | 分类于 VS |
热度 ℃
  |   字数统计: 1,037(字)   |   阅读时长: 4(分)

前言

游戏开发的过程中,经常会出现客户端宕机的问题,这时候一个小小的dump文件可以记录当时的内存及堆栈情况,对于解决崩溃的问题有巨大的帮助,之前用VS2008的时候调试过dump文件,但是最近客户端升级为VS2015以后,调试dump文件时经常会出现未找到xxx.exe或xxx.dll的情况,之前一直好使的方法现在却行不通了,于是决定找找解决的办法。

阅读全文 »

操作指向类成员的指针需要了解的两个操作符->*和.*

发表于 2018-05-12 | 更新于 2020-02-26 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 2,283(字)   |   阅读时长: 9(分)

前言

关于 ->* 这种写法在很早就在项目代码里见过了,并且还写过,不过当时并没有正确的理解这样写的含义,一直到最近发现这样写很奇怪,于是根据自己的理解,开始改代码,发现无论怎么改都无法通过编译,仔细搜索后才发现这是一种固定的写法,也就是说 ->* 是一个操作符,无法拆分,同时还有一个 .* 也是相同的作用,只不过是用于对象上,而 ->* 是用于对象的指针上。

那么这两个操作符究竟有什么作用呢?实际上它们主要用于操作指向类成员的指针,可能你会说指向类成员的指针直接定义就好了,为什么这么麻烦,还要是用这两个操作符呢?接下来我们举几个例子就明白了。

阅读全文 »

bat批处理替换字符串中匹配的子串

发表于 2018-04-12 | 更新于 2019-11-17 | 分类于 bat |
热度 ℃
  |   字数统计: 548(字)   |   阅读时长: 2(分)

前言

关于字符串的操作通常是编程生涯中不可避免的,在各种竞赛中、工作中常常能使用到,许多语言中都有专门负责处理字符串的模块或者类,对于字符串的替换一般也有专门的函数,比如Lua中的string.gsub()、Python中的replece()等,那么批处理在进行字符串操作的时候,有没有好用的替换函数呢?

阅读全文 »

略显神秘的快速排序

发表于 2018-04-08 | 更新于 2019-11-17 | 分类于 Sort |
热度 ℃
  |   字数统计: 1,957(字)   |   阅读时长: 7(分)

前言

继续我的填坑旅程,上次说到《排序算法系列之(二)——冒泡排序名字最为形象的一个》2017-09-16 10:42:07,又过了半年多,终于再一次鼓起勇气决定聊一聊快速排序的思路,不过与冒泡排序不同的是,这个快速排序的名字似乎和算法的思路没有什么关系,这个名字太抽象了,起这个名字可能当初仅仅是因为它比别的排序快一点。咳咳!

阅读全文 »

神秘莫测的时间复杂度

发表于 2018-03-29 | 更新于 2019-11-17 | 分类于 Thinking |
热度 ℃
  |   字数统计: 2,219(字)   |   阅读时长: 8(分)

前言

说到时间复杂度,作为程序员或多或少都会有所接触,特别是算法工程师肯定是天天和这个概念打交道,其实前几篇总结排序的文章我一直没有提时间复杂度,因为网上太多的文章讲这个概念了,所以我只总结了一下我对几种排序算法的理解,以及简单的实现代码,而当我今天准备总结一下快速排序的时候,我发现各个关于快速排序的文章都有讲到时间复杂度,有的甚至直接就给出 O(N*log(N)),这个对数是以2为底的,还是以10为底的都没有说清楚,这简直让人感到莫名其妙,所以我决定还是简单说一下我对时间复杂度这个概念的理解。

阅读全文 »

bat批处理遍历指定目录下文件并更新

发表于 2018-03-21 | 更新于 2019-11-17 | 分类于 bat |
热度 ℃
  |   字数统计: 1,514(字)   |   阅读时长: 6(分)

前言

先来看这样一个需求,假设有A,B两个目录,其中A目录是资源目录,B目录是工作目录,其中资源目录不定期更新,资源文件都在A目录下,并且没有子目录层级关系,但是资源要被使用时需要更新到B工作目录,B目录根据工程需要建立了一个包含众多子目录的层级体系,这样当A目录中的一个资源文件更新后,需要手动复制A目录中更新的资源文件,然后在B目录中找到对应的位置,然后进行粘贴替换,这样的操作如果很久一次、或者每次只有1、2个文件还好,如果资源文件大范围更新,那么要一个个找到更新文件在B目录中的位置然后替换就成了一件令人苦恼的事情,所以根据这个需求,才有了下面的探索过程。

阅读全文 »

关于游戏中仓库类的设计

发表于 2018-02-25 | 更新于 2019-11-17 | 分类于 Thinking |
热度 ℃
  |   字数统计: 995(字)   |   阅读时长: 3(分)

前言

这个游戏中的仓库类设计开始于春节前,和大家一样,我也是期盼着放假而无心工作,所以在放假前一天虽然蹦出了思维的火花,我却没有使用文字记录下来,但是大致的思路我已经记录到脑子中了,这一次的突然感悟,与上次突然明白什么是选择排序,什么是冒泡排序很类似,都是一瞬间突然明白,是一个从量变到质变的过程,接下来简单记录下我关于仓库的理解。

阅读全文 »

Vim、Xshell、远程终端莫名卡死的原因

发表于 2018-02-03 | 更新于 2019-11-17 | 分类于 Vim |
热度 ℃
  |   字数统计: 647(字)   |   阅读时长: 2(分)

前言

最近通过Xshell连接远程服务器,然后使用Vim修改文件时会莫名其妙的卡死,一开始我还没注意,因为近期的网络一直不太好,经常出现按下一个字母半天才反应过来的情况,所以我没有太在意,直接关闭终端重新打开就好。直到有一天我开着两个终端的时候,Vim又卡着不动了,而另一个终端还以流畅的处理我敲击的命令,我就断定这肯定不是网络原因了。

阅读全文 »

Vim中简单格式化代码

发表于 2018-02-02 | 更新于 2019-11-17 | 分类于 Vim |
热度 ℃
  |   字数统计: 1,199(字)   |   阅读时长: 5(分)

前言

写这个总结的起因是我在把Windows上VS中的代码粘贴在Linux服务器的Vim中时,代码格式惨不忍睹,我就搞不明白为什么它每一行都要向后缩进,搞得我的代码最后像倒立的楼梯似的,就像这样:

1
2
3
4
5
6
7
8
9
int main(int argc, char *argv[])
{
int i=0,j=0;
if (i != 0) {i++; }
else {i--; }
for(i=0;i<5;i++)j++;
printf("i=%d,j=%d\n",i,j);
return 0;
}
阅读全文 »
1…212223
Albert Shi

Albert Shi

阳光总在风雨后,大雨过后是冰雹

225 日志
36 分类
539 标签
RSS
GitHub 简书 StackOverflow CSDN 知乎 墨天轮
Links
  • Web前端导航
  • 文字编码导航
  • 在线代码编译
  • 在线工具集合
  • 在线教程集合
© 2018 - 2023 Albert Shi
Hexo 强力驱动
主题 - NexT.Mist
Unless otherwise specified, this blog is licensed under a CC BY-NC-ND 4.0 International License.
 京公网安备11010102007022号     冀 ICP 备 2022029255 号 - 1.