很多編程語(yǔ)言都有字符串之間轉(zhuǎn)換的機(jī)制,而 GO 語(yǔ)言則是通過模板來(lái)將一個(gè)對(duì)象的內(nèi)容來(lái)作為參數(shù)傳遞從而實(shí)現(xiàn)字符串的轉(zhuǎn)換。此方式不僅可以在重寫 HTML 時(shí)插入對(duì)象值,也適用于其...
很多編程語(yǔ)言都有字符串之間轉(zhuǎn)換的機(jī)制,而 GO 語(yǔ)言則是通過模板來(lái)將一個(gè)對(duì)象的內(nèi)容來(lái)作為參數(shù)傳遞從而實(shí)現(xiàn)字符串的轉(zhuǎn)換。此方式不僅可以在重寫 HTML 時(shí)插入對(duì)象值,也適用于其...
簡(jiǎn)介 萬(wàn)維網(wǎng)是一個(gè)龐大的,擁有數(shù)以百萬(wàn)計(jì)用戶的分布式系統(tǒng)。網(wǎng)站就是一個(gè)運(yùn)行著 HTTP 服務(wù)器的 Web 主機(jī)。而 Web 客戶端通常是瀏覽器用戶,當(dāng)然也還有許多其他的“用戶...
簡(jiǎn)介 盡管互聯(lián)網(wǎng)最初被設(shè)計(jì)為可以承受敵對(duì)代理攻擊的系統(tǒng),但它過去一直是在一個(gè)可信的實(shí)體和合作的環(huán)境中發(fā)展起來(lái)的??上КF(xiàn)在已經(jīng)時(shí)過境遷。垃圾郵件,拒絕服務(wù)攻擊,網(wǎng)絡(luò)釣魚這些東西...
引言 以前用 EBCDIC 和 ASCII 編碼,(別看只有兩種編碼),但事情從來(lái)沒有簡(jiǎn)單過,恰恰相反變得越來(lái)越復(fù)雜了。但據(jù)推測(cè),編碼簡(jiǎn)化就像(黎明前)地平線上閃過了一道光,...
客戶端和服務(wù)器的交互包括消息類型和消息數(shù)據(jù),這就需要有適當(dāng)?shù)慕换f(xié)議。本章著重討論客戶端和服務(wù)器交互相關(guān)的問題,并給出一個(gè)完整又簡(jiǎn)單的客戶端服務(wù)器交互的例子。 介紹 客戶端和...
客戶端與服務(wù)之間通過數(shù)據(jù)交換來(lái)通信。因?yàn)閿?shù)據(jù)可能是高度結(jié)構(gòu)化的,所以在傳輸前必須進(jìn)行序列化。這一章將研究序列化基礎(chǔ)并介紹一些 Go API 提供的序列化技術(shù)。 簡(jiǎn)介 客戶端與...
Introduction 多年的發(fā)展,使得IP和 TCP/UDP 協(xié)議基本上就等價(jià)于網(wǎng)絡(luò)協(xié)議棧。例如, 藍(lán)牙定義了物理層和協(xié)議層,但最重要的是 IP 協(xié)議棧,可以在許多藍(lán)牙設(shè)...
分布式系統(tǒng)很復(fù)雜,它涉及到多臺(tái)計(jì)算機(jī)的連接方式。我們編寫的程序必須能在該系統(tǒng)中的每一臺(tái)計(jì)算機(jī)上運(yùn)行,它們必須都能協(xié)同操作來(lái)完成一項(xiàng)分布式任務(wù)。解決這種復(fù)雜性的一般方法,就是將...
new()和make()函數(shù)是Go語(yǔ)言中用于分配空間,初始化類型的內(nèi)建函數(shù)。這兩個(gè)函數(shù)的功能比較類似,很容易混淆。 new new(T) 為一個(gè) T 類型新值分配空間并將此空...
在這里,我將解釋如何將代碼分成幾個(gè)模塊。在我的例子中,我將標(biāo)題和有效負(fù)載部分分成單獨(dú)的文件。 劃分代碼 我想為Header提供單獨(dú)的文件,OP_REPLY消息的文件,OP_Q...
將header和payload分成兩個(gè)不同的子樹會(huì)很好,所以在這篇文章中我將解釋我們?nèi)绾巫龅竭@一點(diǎn)。 子樹 我正在使用第三部分的解剖器。我只會(huì)查看OP_QUERY和OP_RE...
在第1部分和第2部分中,我們查看了MongoDB有線協(xié)議消息的消息頭。這次是解析消息內(nèi)容的時(shí)候了。但是,我們實(shí)際上不會(huì)解碼MongoDB返回的文檔,因?yàn)檫@不屬于本教程的范圍。...
在這篇文章中,我們將首先介紹Lua解剖器的基本調(diào)試。之后,我們將擴(kuò)展解剖器以顯示操作碼的名稱,而不僅僅是數(shù)字。 調(diào)試 當(dāng)我在談?wù)撜{(diào)試時(shí),我并沒有真正考慮通常的調(diào)試方法——使用...
原文這篇文章將向你講解如何用Lua語(yǔ)言簡(jiǎn)單地創(chuàng)建協(xié)議解剖器。當(dāng)你使用Wireshark尚未擁有解剖器的自定義協(xié)議時(shí),此功能非常有用。例如Wireshark長(zhǎng)這樣 Lua速成班...
參考 CMake入門實(shí)戰(zhàn)cmake緩存清理 什么是CMake CMake允許開發(fā)者編寫一種平臺(tái)無(wú)關(guān)的CMakeList.txt文件來(lái)定制整個(gè)編譯流程,然后再根據(jù)目標(biāo)用戶的平臺(tái)...
Golang basics - writing unit tests 1. Go測(cè)試 Go有一個(gè)內(nèi)建的測(cè)試指令go test以及testing包,聯(lián)合給出一個(gè)最小但完整的測(cè)試...
https://juejin.im/post/5c403b98f265da612d1984c9 template包是數(shù)據(jù)驅(qū)動(dòng)的文本輸出模板,即在寫好的模板中填充數(shù)據(jù) 模板 模...