- 博客(105)
- 收藏
- 关注
原创 C++游戏服务器框架
IOCP把一个套接字[socket]与一个完成端口关联了起来,当一个事件发生的时候,此完成端口就将被操作系统加入一个队列中。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。5、ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。1、skynet是一个开源的,轻量级的,为在线游戏服务器打造的框架。3、boost asio 是一个异步的网络框架。
2024-08-20 21:49:36 448
原创 2024 年程序员必备网站更新
ChatGPT 是由 OpenAI 开发的一款基于 GPT(Generative Pretrained Transformer)架构的人工智能聊天机器人。ChatGPT 可以帮助开发人员快速生成代码片段或提供编程问题的解决方案。ChatGPT 可以提供语法建议、代码优化建议,甚至帮助调试代码中的错误。ChatGPT 诞生后我自己已经大幅减少了使用 Google 等搜索引擎的频率,之前还需要登录才能使用,账号还不好注册,现在已经不需要注册登录,在线就可以直接使用了。
2024-04-21 11:48:23 1137
原创 linux 的各种压缩文件命令
压缩:[*******]$ tar zcvf FileName.tar.gz DirName。解压:[*******]$ tar zxvf FileName.tar.gz。压缩:[*******]$ zip FileName.zip DirName。解包:[*******]$ tar xvf FileName.tar。解压2:[*******]$ gzip -d FileName.gz。解压:[*******]$ unzip FileName.zip。先将分卷的压缩包合并为一个压缩包。
2024-02-28 18:36:16 558
原创 如何入门学习黑客技术?如何选择编程语言?如何选择适合黑客的操作系统?
作为黑客技术学习者,要保持持续学习的精神,了解最新的安全威胁和防御技术。定期阅读相关的书籍、博客和研究论文,保持对新技术和威胁的了解。在进行渗透测试或安全评估时,获得适当的授权,并遵循相关的法律、规定和道德准则。学习黑客技术不仅仅是为了攻击和入侵系统,更重要的是能够理解和应对黑客攻击,确保网络和系统的安全。相互尊重、分享知识和经验,促进整个社区的发展。提供培训和资源,帮助员工理解安全最佳实践,并提高他们在网络和信息安全方面的意识。发展你的合作和沟通能力,能够更好地与其他人协作,解决安全问题和提供解决方案。
2023-11-12 23:53:52 600
原创 介绍几款Linux 下终极SSH客户端
SecureCRT是一款专业的终端模拟器,支持远程协议Telnet、Rlogin、SSH/SSH PKCS、SFTP、Serial,具有Unicode编码支持、动态端口转发、自定义键盘映射、VB,JS,Python等脚本语言支持、脚本录制等。此外,Xshell还提供了丰富的会话管理功能,可以方便用户进行多任务操作,另外配合xftp可以很方便进行文件的上传下载,也可以使用rz,sz命令操作,xshell使用比较广泛。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…
2023-11-01 03:36:53 594
原创 Linux 用户必备的 Git 图形化工具
在这篇文章中,我们回顾了一些最著名的带有 Linux GUI 的 Git 客户端,但是,上面的列表中可能缺少一两个,因此,请通过评论部分向我们反馈任何建议或反馈以下。您也可以告诉我们您最好的带有 GUI 的 Git 客户端以及您为什么喜欢使用它。
2023-11-01 03:31:45 604
原创 C/C++程序员技术发展方向(强烈推荐!!)
也有人可能会对测试开发岗位有点误解,以为去了就是鼠标点点就ok(不过我确实有认识的朋友做那样的测试),事实并不是那样,不仅仅需要测试基础,对于开发也是有一定要求的,至少得熟悉Java吧,不过你熟悉C++也是有机会和优势的哈。关于后端开发,我以前的分享基本上都是根据这块的需求来更新文章的,从最简单的C语言基础到后面的一些算法,更多的是希望大家打好基础,在后边学习更高级点的东西能有好点的基础;一般来说,测试开发工的岗位,就一定要求你懂研发,懂测试,并且还要有一定的深入工作的能力。
2023-09-23 02:39:41 3776
原创 2.6W字系统总结,带你实现 Linux 自由!
Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触Linux机会相对较少,因此往往容易忽视它。但是学好它却是程序员必备修养之一。作者使用的是阿里云服务器ECS(最便宜的那种)CentOS 7.764位。当然你也可以在自己的电脑安装虚拟机,虚拟机中再去安装CentOS系统(这就完全免费了)。至于它的安装教程可以去谷歌搜索下,相关教程非常多。Linux系统内核指的是由负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。Linux发行套件系统是我们常说的。
2023-09-18 14:01:19 163
原创 实战 | 服务端开发与计算机网络结合的完美案例
大家好,我是Martin后端,可以说是仅次于算法岗之外竞争最为激烈的岗位,而其中的服务端开发也是很多人会选择在秋招中投递的一个岗位,我想对于很多人来说,走上服务端开发之路的起点就是一个回声服务器了。今天带大家实战一把,真实体验服务端底层数据交换的点点滴滴,在这过程中可以让你看见 TCP 三次握手四次挥手的具体过程,全程干货,不开玩笑。学会将自己所学的知识串联起来是你迈向大佬的必经之路。
2023-09-18 13:56:25 382
原创 我学编程全靠B站了,真香-国外篇(第三期)
我推荐的不多,本着少就是多的原则,只给大家推荐我看过最好的五门视频,主要是来自两所国外高校:MIT美国麻省理工、CMU卡内基梅隆大学。我还看过一些其余国外大学的视频,比如英国剑桥大学、牛津大学的视频以及一门帝国理工学院数据库系列视频。但因为这些视频基本都是英文字幕,没有中文配套字幕,观看门槛较高,需要比较好的英文水平,就没有给大家推荐。
2023-09-18 12:06:36 228
原创 我学编程全靠B站了,真香(第二期)
上次给大家推荐了不少B站上的好视频,看得出来还是有不少B站大学的校友的,哈哈哈。我就合计着这期就把给大家安排一手吧。再推荐国外的优秀视频吧。上期推荐的主要是C/C++、Java、操作系统、计算机网络、数据结构与算法、数据库(MySQL)、Linux相关的视频,没有看过的朋友可以移步去看下:本文也会中间掺杂着推荐一些经典书籍,这些书籍基本上在当当和京东都有售,至于电子版则在下面这个电子书仓库中可以找到:https://github.com/forthespada/CS-Books。
2023-09-18 12:02:57 228
原创 我学编程全靠B站了,真香(第一期)
我是就读于B站大学2020届的Martin同学,反正我学习计算机真的是全靠 B 站了。比如以及我这段时间正在学习的前端。各种教程下面分享一下我在B站大学就读时的课程表,老实说,我看过的视频有很多,同时B站优秀的编程类视频也有很多,今天来分享一下我觉得还不错的编程类学习视频。我看过的不仅有国内的,还有一些国外的精品课程,比如 MIT .828、6.824以及CMU15-213。因为篇幅原因,本期就,可以先透露一句,国外的计算机编程类视频优秀的着实不少。
2023-09-18 11:59:05 3023 2
原创 初学者,应该如何学好 C/C++语言?
使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。
2023-09-17 23:54:54 279
原创 腾讯 13 年,我所总结的Code Review终极大法
..}这是 sspp 的代码。CSuperAction 和 CSuperActionBase,一会儿 super,一会儿又 base,Super 和 SuperBase 是在怎样的两个抽象层次上,不通读代码,没人能读明白。我想确认任何细节,都要把多个层次的代码都通读了,有什么封装性可言?好,你说是作者没有把 class name 取好。那问题是,你能取好么?一个刚入职的新人同学能把 class name、class 树设计得好么?
2023-09-17 15:45:30 184
原创 TCP/IP协议栈的心跳、丢包重传、连接超时机制实例详解
如果还收不到心跳包的ACK,则1秒后重发心跳包,如果始终收不到心跳包,则在发出10个心跳包就达到了系统的上限,就认为网络出故障了,协议栈就会直接将连接断开了。假设和对端的网络出问题了,给对端发送第1个保活包,1秒内没有收到对端的ack,则发第2个保活包,1秒内没有收到对端的保活包,再发送下一个保活包,.....,直到发送第10个保活包后,1秒钟还没收到ack回应,则达到发送10次保活包的探测次数上限,则认为网络出问题了。默认情况下,协议栈的心跳机制对socket套接字是关闭的,如果要使用需要人为开启的。
2023-09-17 15:39:56 683
原创 UDP/TCP 最大可传输单元细节可不少~
Maximum Transmission Unit(最大可传输单元) 的缩写,它的单位是字节。在*数据链路层*定义一个数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的 MTU 值是不同的。这个网络中最小的 MTU 值,被称为路径 MTU。假设:我们的接受/发送端都是以太网,它们的 MTU 都是 1500,我们发送的时候,数据包会以 1500 来封装,然而,不幸的是,传输中有一段X.25网,它的 MTU 是 576,这会发生什么呢?
2023-09-17 15:36:39 304
原创 保姆级 C++ 学习路线
好的 C++开发者从来不怕找不到工作,即使你日后从事 Java/Go的工作,由于语言的原理都是相通的,所以你的学习成本会比别人小的多。我仔细想了想自己这些年的语言史:大学写了一年的C语言和VB,三年的C#;研究生写了一年的Python,两年的C++;工作了开始写JavaScript、Go以及Vue、React这些框架。你要问我最喜欢哪门语言?毫无疑问,绝对是是C++!不为什么,就是喜欢它的严谨!C++天下第一!!!种一棵树的最好时间是十年前,其次就是现在,
2023-09-17 11:48:06 469
原创 可能是北半球最好的零基础C语言学习路线
你好,我是Martin。我看到有不少还在读本科的学弟学妹私信让我安排一些学习路线,今天就安排一手学习路线。,这可能是你见过的零基础最好的C语言学习路线了。我从事Linux C/C++的学习&工作已经七八年了,现在在某游戏公司担任游戏后端开发工程师。虽然我也是学的学的CS,但。可以说能走到今天,基本全靠的,
2023-09-17 11:08:32 120
原创 10 个不错的 C 语言开源项目
UNIX V6 的内核源代码包括设备驱动程序在内约有 1 万行,这个数量的源代码,初学者是能够充分理解的。基于 Reactor 模式,效率较高,并且代码精简(4.15 版本 8000 多行),是学习事件驱动编程的很好的资源。由于简洁的设计和先进的特征,使得它在生产和研究方面,都有卓越的表现,而且它也有受使用者支持的完整的源代码。cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有 500 多行,速度也非常理想。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。
2023-09-17 10:51:44 205
原创 一款开源的shell脚本分析工具
今天发现的一款神器,如果你日常会接触到shell脚本,或者说自己需要写一些shell脚本,那么强烈建议你用下这个工具。shellcheck一个静态的shell脚本分析工具,可以判断脚本哪里有异常,哪里可以优化,并且会给出对应的解决办法。github可以访问的直接到如下链接去下载就可以,目前支持多个终端,也有web可访问。大家好,今天分享一款开源工具--shellcheck。这款工具不仅适用于初学者,对于中高级使用者帮助更大。(1)自己从 github 仓库拉取。
2023-09-17 10:49:32 617
原创 VSCode 远程开发,再也不用带电脑回家了~
VS Code几乎是所有的程序员必备的工具之一,据说全球一般的开发者都使用过VS Code这款工具。今天为大家介绍一下 VS Code 实现远程办公的方法。
2023-09-17 10:37:32 683
原创 《Linux 内核编码风格》官方手册!
通常,你希望你的注释告诉别人你的代码做了什么,而不是怎么做的。关键字会导致内核变大,这会降低整个系统的速度,这是因为 CPU 的 icache 占用量更大,而且会导致 pagecache 的可用内存减少。使用具有描述性名称的辅助函数(如果你认为它们的性能至关重要,则可以让编译器内联它们,效果比写一个复杂的函数要好)。因此,由于屏幕上的新行是不可再生资源(请考虑 25 行的终端屏幕),因此你有更多的空行可以放置注释。是不一致的,但是所有思维健全的人都知道(a)K&R 是正确的,(b)K&R 是正确的。
2023-09-17 02:28:38 348
原创 C盘简易无门槛清理指南
一些非必须安装在系统盘的软件可以选择安装在其他的盘里面,日常用的一些通信,音乐,影视和游戏等尽量安装在非系统盘,避免占用大量空间。选择软件安装包→自定义安装→选择非系统盘的其他盘(根据自己电脑空间情况选择)。
2023-09-17 00:33:56 228
原创 这些代码,差点把我气出内伤
先问大家一个小问题:你觉得看别人代码累,还是自己写代码累?我相信有很多朋友会说,当然是自己写代码累了,要思考逻辑、要动手敲键盘,身心俱疲啊;但是,如果你需要经常阅读别人的代码,尤其是烂代码,答案就不一定了。因为自己写代码,逻辑是自己来梳理的、代码自己是熟悉的;但是看别人的代码,你就要去理解别人的代码逻辑,再加上烂代码的加持,可能很简单的逻辑,你都得看半天才能懂。所以很多大佬在面对前人的 “屎山” 项目时,宁愿自己重写,也不去读烂代码。举个夸张的例子:让你实现 1 + 1 的求和。
2023-09-17 00:23:30 113 1
原创 C++ 太卷,转 Java?
最近看到知乎、牛客等论坛上关于 C++ 很多帖子,比如:2023年大量劝入C++2023年还建议走C++方向吗?看了一圈,基本上都是说 C++ 这个领域唯一共同点就是都使用 C++ 语言,其它几乎没有相关性。的确是这样,比如量化交易、自动驾驶,客户端,图形学,存储数据库开发,后台开发,嵌入式等等基本上都有各自的领域知识。大概是去年校招中 C++ 方向的同学更容易找到工作吧,因为 C++ 除了互联网这些大厂招,像造车新势力、芯片厂等等制造业也会招,这都是最近两年大力发展的行业。
2023-09-16 16:57:27 4181 1
原创 我们一直谈论“写代码”,但你会“读代码”吗?
阅读别人代码的同时,一定也伴随着和其他开发者的交流讨论,这对一个开发者的成长是很重要的。在一些论坛或答疑群里,查看并解答其他人的代码问题,不仅是单纯地帮助别人,对自己也是一种的提高。看代码是单向的,更好的方式是边看边改,哪怕仅仅是一些简单的输出也好。脑中设想下某段代码的作用,通过修改运行验证你的想法,这样的交互可以锻炼你对代码的理解,会比你简单地看一遍再照抄一遍好很多。学习都要从模仿开始做起,不管是入门时候阅读教程里的示例代码,还是进阶阶段阅读优秀项目源码,都是很好的学习方式。开发中读代码大多数是被动的。
2023-09-16 16:34:57 170
原创 不要相信懂C++的程序员
大佬如Linus Torvalds也曾批评过“C++标准太复杂导致不合格使用者太多,容易误用和滥用语言特性”,他建议,在系统编程里直接用C就可以,非系统编程里,应该选择一种有垃圾收集的语言,C++语言的特性基本无用,只会捣乱。在Brandy的示意图中,可以看到随着学习的深入,越来越多的问题开始涌现在学习者面前:令人困惑的模版错误消息,有点过于“神奇”的引用类型,不知道怎么用的虚拟析构函数,糟糕的异常说明符,静态对象初始化问题……1979年诞生的C++固然强大,但毕竟也“年过不惑”,因此唱衰的声音一直未绝。
2023-09-16 16:32:20 93
原创 金九银十,给大家一点面试方面的建议
好久不见,甚是想念。这段时间没有更新什么文章,其实是因为我跳了一波槽,出去面了一圈后,也顺利拿了不少架构岗位的offer。正好马上要金九银十了,相信有不少小伙伴们估计也有跳槽涨薪的想法,那么就从我最近的经历出发,说说我的一些建议。
2023-09-15 10:53:10 144
原创 马上金九银十了,给大家一点面试方面的建议
好久不见,甚是想念。这段时间没有更新什么文章,其实是因为我跳了一波槽,出去面了一圈后,也顺利拿了不少架构岗位的offer。正好马上要金九银十了,相信有不少小伙伴们估计也有跳槽涨薪的想法,那么就从我最近的经历出发,说说我的一些建议。
2023-09-12 12:15:17 109
原创 建议收藏!TCP协议面试灵魂12 问
以谈恋爱为例,两个人能够在一起最重要的事情是首先确认各自爱和被爱的能力。接下来我们以此来模拟三次握手的过程。第一次:男:我爱你。女方收到。由此证明男方拥有爱的能力。第二次:女:我收到了你的爱,我也爱你。男方收到。OK,现在的情况说明,女方拥有爱和被爱的能力。第三次:男:我收到了你的爱。女方收到。现在能够保证男方具备被爱的能力。由此完整地确认了双方爱和被爱的能力,两人开始一段甜蜜的爱情。因为服务端在接收到FIN, 往往不会立即返回FIN, 必须等到服务端所有的报文都发送完毕了,才能发。
2023-09-12 11:39:48 149
原创 硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
不管面试 Java 、C/C++、Python 等开发岗位,TCP的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。遥想小林当年校招时常因TCP面试题被刷,真是又爱又狠….过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于TCP 三次握手和四次挥手的面试题型,跟大家一起探讨探讨。TCP 基本认识TCP 连接建立TCP 连接断开Socket 编程PS:本次文章不涉及 TCP 流量控制、拥塞控制、可靠性传输等方面知识,这些留在下篇哈!
2023-09-12 11:37:30 113
原创 14 道关于计算机网络的面试题,助你查漏补缺
HTTPS 指的是超文本传输安全协议,HTTPS 是基于 HTTP 协议的,不过它会使用 TLS/SSL 来对数据加密。使用 TLS/SSL 协议,所有的信息都是加密的,第三方没有办法窃听。并且它提供了一种校验机制,信息一旦被篡改,通信的双方会立刻发现。它还配备了身份证书,防止身份被冒充的情况出现。我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。
2023-09-12 11:35:01 149
原创 Linux基本认识
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2023-09-12 11:11:34 1463
原创 用python开发一个炸金花小游戏
众所周知扑克牌可谓是居家旅行、桌面交友的必备道具,今天我们用Python来实现一个类似的扑克牌小游戏,先来看一下基本的游戏规则。炸(诈)金花又叫三张牌,是在全国广泛流传的一种民间多人纸牌游戏。游戏使用一副除去大小王的扑克牌,共 4 个花色 52 张牌,各个玩家从中抽取 3 张牌,比较大小。各种牌型的大小顺序如下(按照全排列组合中出现的概率越小,牌型分数奖励越大):1、同花顺:三张同样花色且点数连续的牌,如红心2、红心3、红心4;2、豹子:三张点数一样的牌,如 AAA、222;
2023-09-05 15:17:59 5536 3
原创 【无标题】
先说结论,如果你能成为互联网大厂的程序员,那么恭喜你,你的月薪大概率能达到3w、4w,甚至更高,此外一些非互联网大厂的程序员,比如金融、汽车制造等,月薪突破3w、4w的概率也非常高,但是如果你是普通中小厂的程序员,那么只有部分技术或者职级比较高的情况下才可以拿到月薪3w、4w。如果你现在的工作年限还不足5年,那么播妞的建议就是一定不要忘记持续学习,不断提高自己,让自己的能力和经验能够匹配,社会上的35岁危机,其中有一部分原因就是这些程序员的年龄在不断增长,工资在不断增长,但是能力却停留在几年前。
2023-09-05 14:43:55 131
原创 用「渣男」心态去面试,爽翻!
好的职业机会并不是随随便便就能遇到,不建议大家傻傻守着“契约精神”,没有哪个公司非你不可,公司也有可能因为种种原因单方面取消HC,所以过重的心理负担完全没必要。面试是一场“销售”自己的考试,很多程序员掌握的技术、知识都非常过关,但在面试中却不能完全展现出来,屡屡发挥失常。总之,多投简历多面试,保持海王心态,这样才能在激烈的竞争中脱颖而出,找到真正属于自己的那个“鱼塘”。并且,我发现粉丝群里讨论面试经验的同学越来越多,秋招也已拉开序幕,总体来说,比如,在招聘软件上,一天100个招呼直接打满,不行就两个号,
2023-09-05 14:41:15 177
原创 保姆级 C++ 学习路线
好的 C++开发者从来不怕找不到工作,即使你日后从事 Java/Go的工作,由于语言的原理都是相通的,所以你的学习成本会比别人小的多。我仔细想了想自己这些年的语言史:大学写了一年的C语言和VB,三年的C#;研究生写了一年的Python,两年的C++;工作了开始写JavaScript、Go以及Vue、React这些框架。你要问我最喜欢哪门语言?毫无疑问,绝对是是C++!不为什么,就是喜欢它的严谨!C++天下第一!!!种一棵树的最好时间是十年前,其次就是现在,
2023-09-05 14:27:04 1108
原创 600条最强Linux命令总结
今天,带来一篇 Linux 命令总结的非常全的文章,也是我们平时工作中使用率非常高的操作命令,命令有点多,建议小伙伴们可以先收藏后阅读。2. 关机3. 文件和目录4. 文件搜索5. 挂载一个文件系统6. 磁盘空间7. 用户和群组8. 文件的权限 使用 “+” 设置权限,使用 “-” 用于取消9. 文件的特殊属性 ,使用 “+” 设置权限,使用 “-” 用于取消10. 打包和压缩文件11. RPM 包12
2023-09-05 12:18:51 106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人