godoc 的 web 版本开启方式

一、摘要 godoc 是 go 默认自带的一个模块,提供了 go 语言的文档相关信息,一般情况下查询文档可以使用 godoc **来进行查询。 例如 godoc fmt,就会出现 fmt 包相关的信息: 二、 WEB 版文档 其实对大部分人来说,命令行界面看起来都是不友好的,满屏的黑屏白字就算是程序员也是会有抵触心理。 ... 阅读更多

linux 安装 Go1.9.2

一、概述 使用 golang 这么久了,到今天才发现还没有在 linux 上使用安装过,之前要么是在 windows 上安装,要么就是 linux 直接使用 yum 安装,都没有直接从源码装过,今天决定探索一番。 二、步骤 1 、下载安装包 官方下载地址:https://golang.org/dl 依次是 windwos  ... 阅读更多

Golang 的 socket 编程 (四):解决粘包问题及制定通信协议

一、概述 前面已经完成了一个完美的多并发 CS 模型,但美中不足的是没有解决粘包问题。 1.1 什么是粘包问题? 在网络传输中,数据都是通过数据流来传输的,也就是以比特来传输。传输的过程中我们可能会遇到各种各样的问题导致数据传输异常,最常见的就是网络发送时延。网络时延会导致服务端此时收到的数据的时间有偏 ... 阅读更多

Golang 的 socket 编程 (三):并发 Server-Client

一、概述 上一篇实现了一个 server 和 client 通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大的用处,所以现在我们就给客户端和服务端添加上并发功能。 逻辑其实很简单,就是利用 golang 的 gor ... 阅读更多

Golang 的 socket 编程 (二):简单 client-server

一、概述 上一篇介绍了基本的函数和结构类型,这里就可以开始写服务端和客户端通信小程序了,通信的基本的流程如下: 如果服务端使用 Listen 来监听,那么可以不用 ResolveTCPAddr 函数。 现在我们就来写一个 server 和 client,实现功能:client 发送数据到 server,server 将 ... 阅读更多

Golang 的 socket 编程 (一):常用数据结构和函数介绍

工作的原因接触到 socket,要使用 socket 实现一个长连接。之前只在 C/C++上用过 socket,而且在学校的时候也只是简单的做聊天室小程序,并没有涉及到长连接。突然用到工作项目上,心里还是有点悬的,毕竟网上的资料也不是很多。这里就一步一步记录下学习的过程、遇到的问题以及最重要的——解决问题的方 ... 阅读更多

Golang slice 的使用方法及注意事项

一、说明 切片 (slice) 是 golang 里面的可变长元素类型,不是数组或数组指针,本质是一个结构体。 slice 的声明如下 (位于安装目录下的 src/runtime/slice.go):

值得注意的是,切片除了有一个 len 属性表明当前 ... 阅读更多

Golang 中 JSON 解析结构体

一、 StructTag 介绍 StructTag 是 go 语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如 json 的转化。 使用的时候只要把标记的字段用两个`包起来即可,标签内的语法形式通常为 key:"value",多个标记用空格隔开。 [crayon-695181706088 ... 阅读更多

Golang 中 net/http 包使用方法之 http.Header

一、说明 http.Header 结构包含请求头信息,官方定义如下,其实就是一个 map[string][]string 结构:

二、常用方法 因为就是一个简单的 map 结构,所以方法的运用也十分简单,常用的四种方法: 2.1 添加请求头字段 ... 阅读更多

Golang 中 net/http 包使用方法之 http.Response

一、说明 http.Response 是我们请求服务器之后得到的响应数据,结构如下:

其中常用的属性说明如下: Status:响应状态,字符串,"200 OK" StatusCode:响应状态码,200 、 304 、 404 等 Proto:协 ... 阅读更多