做一个简单的server,每到来一个连接,就启用一个新的 goroutine 来进行处理

Go: 网络服务编程入门
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 |
func main() {
ln, err := net.Listen("tcp", ":8080")
checkError(err)
for {
conn, err := ln.Accept()
if err != nil {
continue
}
go run(conn)
}
}
func run(conn net.Conn) {
buffer := make([]byte, 1024)
defer conn.Close()
for {
n, err := conn.Read(buffer)
if err != nil {
return
}
fmt.Println("read:", string(buffer[:n]))
}
}
|
本文网址: https://golangnote.com/topic/153.html 转摘请注明来源
Related articles
Golang 有很多的模版引擎,自带的 `html/template` 也很好,大多数情况都能满足需求,只是有些逻辑、条件判断不好在模版里实现, `quicktemplate` 是个很好的选择。...
bolt 是高性能的kv 嵌入式数据库,很适合用在微服务上,下面是goji + bolt 写的短网址服务。...
Golang 的网络服务,如果不指定IPv4 或 IPv6,如果VPS 同时支持 IPv4 和 IPv6,`net.Listen()` 只会监听 IPv6 地址。但这不影响客户端使用 IPv4 地址来访问。...
为了避免图片exif 信息泄漏,需要在使用Go 删除图片exif 信息...
将视频文件投屏到智能电视有很多种方法,这里是介绍基于 `UPnP/DLNA` 的投屏方式。...
最近 ChatGPT 很火,这是用于 ChatGPI 的 Golang 控制台客户端。...
给定一个不没有重复字符的字符串,如 `[0-9,a-z]`,把一个 10 进制数字转为,该字符集的字符串。应用场合如汽车牌、顺序计数。...
有时候写网站,为了统一的后端,把不同业务都集中到一个后端,这时就需要处理多域名的请求,在 Go http server 里实现很简单,只需把不同域名映射到不同的 `http.Handler`。...
groupcache 是 memcached 作者 Brad Fitzpatrick 用 Go 语言编写的缓存及缓存过滤库,作为 memcached 许多场景下的替代版本。...
编程时,我们通常需要编写“泛型”函数,其中确切的数据类型并不重要。例如,您可能想编写一个简单的函数来对数字进行求和。Go 直到最近才有这个概念,但最近才添加了它(从1.18版开始)。...