前言 对于 Golang 来说,实现一个简单的 http server 非常容易,只需要短短几行代码。同时有了协程的加持,Go 实现的 http server 能够取得非常优秀的性能。这篇文章将会对 go 标准库 net/http 实现 http 服务的原理进行较为深入的探究,以此来学习了解网络编程的常见范式以及设计思路。HTTP 服务 基于 HTTP 构建的网络应用包括两个端,即客户端 ( Cl
转载
2024-06-18 14:27:33
61阅读
考虑基于HTTP的RPC,或者HTTP服务器主动通知客户端的机制,就是HTTP Long-Polling,意思就是客户端发起一个长连接,服务器阻塞忍住不响应直到:超时,比如5秒后,我们给客户端响应一个keepalive,意思是现在还没有啥事,请继续polling。拿到结果,这个可能是任何时候,比如300毫秒、1100毫秒、2300毫秒拿到一个事件,响应给客户端,实现了有事件异步通知。这样客户端和服
转载
2024-09-12 03:44:44
46阅读
在go语言中,接口就是一种类型。同map、struct等的定义,语法是一样的。如:type People interface {
Speak(string) string
}关键字是interface。此时就称People是一个接口。接口内只有方法声明,没有方法的实现,也没有数据字段。接口的作用就是定义一些对象的共同特征,特征以接口内的方法来定义。如上例的speak方法。具有上述特征的类型,那就
转载
2024-06-17 09:35:23
20阅读
# Go语言中的长字符串定义
在编程世界中,处理字符串是一个频繁而重要的任务。Go语言(Golang)作为一种现代编程语言,其字符串处理方式相对简单且高效。在这篇文章中,我们将探讨Go语言中如何定义长字符串,并通过代码示例来进行说明。
## 什么是长字符串?
长字符串通常是指超过一行的字符串。在许多编程语言中,处理长字符串可能会变得复杂。不过,Go语言为开发者提供了便利的方式来定义多行字符串
原创
2024-09-12 04:56:04
189阅读
1、案例case1: maxOpenConns > 1 func fewConns() {
db, _ := db.Open("mysql", "root:rootroot@/dqm?charset=utf8&parseTime=True&loc=Local")
db.SetMaxOpenConns(10)
rows, err := db.Query("select
转载
2024-05-31 01:10:03
139阅读
包介绍包(package)是多个Go源码的集合,go语言有很多内置包,比如fmt,os,io等。定义包main包是一个可执行的包,是应用程序的入口包,编译完会生成一个可执行文件。包名可以不和文件夹的名字一样,包名不能包含 - 符号。package 包名可见性:名称变量以大写字母开始,包外可以调用,相当于java的public &nb
转载
2023-06-15 06:30:52
57阅读
# Go语言长字符串变量换行
在Go语言中,处理长字符串时,我们常常面临换行的问题。为了提升代码的可读性,合理地换行字符串是非常重要的。本文将探讨长字符串的使用方法和换行技巧,并提供代码示例帮助大家更好地理解。
## 理解长字符串
在Go中,可以使用反引号(`` ` ``)来定义原生字符串,这样可以直接在字符串中包含换行符和其他特殊字符,而不需要转义。例如:
```go
rawString
原创
2024-09-23 06:33:31
339阅读
1.jar包比如 Jedis-2.7.0.jar2.主要看代码import包
import redis.clients.jedis.Jedis;
创建连接,如果是随机读写 可以使用短连接,如果是批量读写可以使用长连接
//单机/主从模式
//默认参数host,port,timeout,可以只写host
Jedis jedis = new Jedis(RedisIP, RedisPORT);//创建
转载
2023-07-09 23:48:31
78阅读
字符串在我们程序开发中,使用的是非常多的,常用的函数需要同学们掌握[带看手册或者官方编程指南]:字符串中常用的系统函数如下:1、统计字符串的长度,按字节 len(str) 2、字符串遍历,同时处理有中文的问题 r := []rune(str)3、 字符串转整数: n, err := strconv.Atoi("12")4、 整数转字符串 str = strconv.Itoa(12345)5、字符
转载
2023-09-16 11:29:46
214阅读
GO中用string表示字符串,它是一个内置类型,而C++中的string是一个标准类,这是一个区别。因为字符串操作非常多,另外GO中还引入了rune来支持国际化的字符(中文字符等),因此这里单独开一篇文章来将字符和字符串。先来简单地看一个中英文都有的字符串func main() {
str := "我叫lyb"
fmt.Println(len(str))
}输出结果9输出9的原因是因为,一个
转载
2023-11-08 23:06:23
67阅读
Go的tcp长连接 为订阅打基础 server package main import ( "fmt" "log" "net" "strconv" "time" ) type Manger struct { Kv map[int]*net.TCPConn fl int } func (m *Mang ...
转载
2021-07-28 21:57:00
436阅读
连接上imap服务后,什么都不操作,我测试大约5分钟会被服务端断掉,测试代码如下 为了保持住这条连接,每隔10秒列取一下邮件夹列表,这样就可以一直保持住连接了。开三个窗口,一个窗口不停的netstat查看tcp连接情况,一个窗口运行代码,一个窗口打开tcpdump监听端口查看数据请求 while t
原创
2021-06-17 19:14:38
1021阅读
GO使用TCP长连接
原创
2023-11-01 15:00:59
219阅读
Go语言的 os 包中提供了操作系统函数的接口,是一个比较重要的包。顾名思义,os 包的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。os 包中的常用函数1) Hostname 函数定义: func Hostname() (name string, err error)Hostname 函数会返回内核提供的主机名。2) Environ 函数
转载
2023-12-10 16:22:38
48阅读
在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。Go语言的包(package)包介绍包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。定义包我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go文件的文
转载
2023-07-26 16:21:22
79阅读
目录1、包介绍2、标准库3、程序执行顺序1、包介绍包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其他包中导入内容。如同其他一些编程语言中的类库或命名空间的概念,每个 go 文件都属于且仅属于一个包。一个包可以有许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:pack
转载
2024-01-12 11:07:17
65阅读
标准的Go语言代码库中包含了大量的包,并且在安装 Go 的时候多数会自动安装到系统中。我们可以在 $GOROOT/src/pkg 目录中查看这些包。下面简单介绍一些我们开发中常用的包。1) fmt fmt 包实现了格式化的标准输入输出,这与C语言中的 printf 和 scanf 类似。其中的 fmt.Printf() 和 fmt.Println() 是开发者使用最为频繁的函数。格式化短语派生于C
转载
2023-12-24 08:37:55
73阅读
包介绍包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。定义包我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。package 包名注意事项:一个文件夹下面只能有一个包,同样一个包的文件不能在多个文件夹下。包名
转载
2023-07-18 12:24:44
87阅读
在 Go 语言开发中,处理字符串查找是一项常见且重要的任务。面对字符串的匹配、查找和替换功能,开发者往往需要一种有效的方法来实现这些功能。我将在本文中详细阐述在 Go 语言中处理字符串查找的整个过程,包括问题背景、错误现象、根因分析、解决方案、验证测试以及预防优化措施。
## 问题背景
在某电商平台的搜索功能中,用户输入商品名称后,系统需要快速返回相关商品的列表。该功能对用户体验至关重要,因为
Go语言-字符串处理函数一、概述1.strings包简介:2.strconv包简介:3.string的基本用法(可以理解成特殊的slice)二、strings包中的字符串处理函数1.检索字符串2.分割字符串:3.大小写转换:4.trim修剪函数:三、strconv包中常用函数1.Parse类函数(将字符串转其它类型)2.Format类函数(将其它类型格式化成字符串)...
原创
2021-08-13 23:11:16
187阅读