相关分享
WebSocket协议详解与c++&c#实现 - 知然
这篇文章详细介绍了 WebSocket 协议的工作原理,包括握手过程、数据帧格式以及如何在 C++ 和 C# 中实现 WebSocket 通信。作者提供了一个轻量级的 WebSocket 解析库,特点是仅包含一个头文件、逻辑清晰且不依赖特定的网络接口,方便集成。此外,文章还提供了一个在线的 WebSocket 模拟客户端,便于测试和理解 WebSocket 的通信过程。
适合人群:对网络编程感兴趣的开发者,尤其是使用 C++ 或 C# 进行服务器开发,并希望深入理解 WebSocket 协议及其实现的工程师。
命令分发模式
文章介绍了命令调度器模式(Command Dispatcher Pattern)的应用,该模式能将命令和其对应的处理逻辑分离,提升代码的可扩展性和可维护性。作者展示了如何在项目中使用Rust实现这种设计模式,包括如何将不同的命令注册到调度器,并动态调用相应的命令处理程序。文章提供了具体的代码示例,帮助读者理解如何在实践中应用该模式来简化复杂的业务逻辑。
聊聊 Go 的边界检查消除技术
在翻译的从慢速到SIMD一文中, SourceGraph工程师其中的一个优化就是边界检查消除(BCE,bounds check elimination)技术,同时他也抛给了读者一个问题:
为啥在使用 a[i:i+4:i+4] 而不是 a[i:i+4]?
本文第一部分先回答这个问题。 第二部分介绍更好的边界检查消除方法。 第三部分再全面梳理Go的边界检查消除技术。
BitTorrent 扩展协议(Extension Protocol)详解
BitTorrent 扩展协议(Extension Protocol)为 BitTorrent 协议簇提供了一个简单而轻量的扩展方式,可以在保证兼容性的同时为协议加入新的功能。比如基于 DHT 协议 的磁力链接就是使用扩展协议加入的新功能。
本文将介绍 BT 扩展协议的报文格式和时序。
分布式散列表协议 —— Kademlia 详解
散列表是一种由键值对组成的列表。你可以把它看作一部字典,只需要经过少数的几步就能通过某种信息找到需要的信息,查询速度很快。
分布式散列表就是由一个网络内所有的节点共同维护的一种散列表,这类散列表通常十分巨大,或者压根不可能由单个机器或者某机组机器维护。
Kademlia 协议由 Petar Maymounkov 和 David Mazières 设计。它可以在容易出错的环境(比如节点会毫无征兆地下线)中建立一张分布式散列表。
BitTorrent 分布式散列表(DHT)协议详解
DHT 协议大幅度提高了 BitTorrent 网络的容错性,使整个网络难以因 Tracker 服务器的下线而崩溃,而这一切的外在表现就是“磁力链接”。
BitTorrent Tracker 协议详解
BitTorrent 网络内的主机依靠互相交换自身持有的资源来完成资源共享,而 Tracker 协议会告诉你哪些主机有你需要的资源。
本文将详细介绍 Tracker 协议。
让 Nginx 将 HTTP 请求转发到 HTTPS 安全模式
在某次博主的交流讨论时,忽然间发现自己站点原定让 HTTP 转发 HTTPS 的支持功能,实际上并不没有生效。如果是直接输入域名访问的话,那么会出现 400 的错误页面。当初为了让全站支持 HTTPS 也是耗费了不少精力,没想到却是这个结果。
单例模式都在这了
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。
它的核心在于,单例模式可以保证一个类仅创建一个实例,并提供一个访问它的全局访问点。
一些管理器和控制器常被设计成单例模式 。
技术 | Btrfs 详解:快照
想象一下,你长时间处理一个文件,反复添加和撤销修改。然后,在某个时刻你意识到:两小时前你撤销的部分修改,现在会非常有用。而昨天在你销毁那个设计之前,你也已经修改了这个特殊的部分。当然,由于你会定期保存文件,所以旧的改动会丢失。很多人可能都遇到过这样的情况。如果能恢复旧版本的文件,而无需定期手动复制,岂不美哉?
这是一个 Btrfs 快照可以帮助你的特别场景。当你使用正确的话,快照同时也为你的电脑提供了很好的备份方案。
