avatar
文章
599
标签
109
分类
29
首页
归档
分类
标签
关于
xhj的博客12_网络 返回首页
首页
归档
分类
标签
关于

12_网络

发表于2024-11-03|更新于2026-06-10|Golang
|浏览量:

网络

TCP 服务器

服务端代码

客户端代码

HTTP 服务器

服务端代码

访问并读取页面数据(网络请求)

客户端代码

文章作者: xhj
文章链接: https://hzhzxfs.github.io/2024/11/03/12_%E7%BD%91%E7%BB%9C/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
Golang
上一篇
1_基础知识
基础知识本部分内容会囊括原书的 前言、Go 语言的起源发展和普及、安装与运行环境、编辑器、集成开发与其它工具 等内容,且会省略很多介绍性的内容。 Go RuntimeGo 编译器直接产生本地可执行的代码,但这些代码仍运行在 Go 的 runtime 当中。这个 runtime 类似于 JAVA 中用到的 JVM,负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片等。 类似的,Go 拥有类似与 JAVA 的垃圾回收机制(标记-清除回收器)用于自动的垃圾回收操作。但同样的,自动的垃圾回收机制并不能规避所有因为内存带来的问题,分配和回收内容都是消耗 CPU 资源的行为。 Go 的可执行文件大小要比对应的源码文件要大很多,说明 Go 的 runtime 嵌入到了每一个可执行文件中,相对于较大的文件大小,Go 编译出来的程序的部署要更加的方便,因为它只需要一个静态文件即可,而避免了像 Python 那样需要为不同版本的依赖甚至是软件额外处理的麻烦。 调试器fmt.Printf() 中的占位符说明 %+v 打印包括字段在内的实例完整信息 %#v 打印包括字段和限...
下一篇
11_协程与通道
协程与通道并发、并行和协程协程定义 并发:一个并发程序能在一个处理器或内核使用多个线程执行 并行:一个并行程序在某个时间点能使用多个处理器资源 goroutine 是根据一个或以上的线程的可用性,映射在它们之上;协程调度器在 Go 运行的时候就能完成对协程的调度。 goroutine 和 coroutine 的区别: goroutine 意味着并行,协程一般来说并不能这样 goroutine 通过信道来相互通信;coroutine 通过让出和恢复操作来通信 协程间的信道channel 的创建123456// var identifier chan datatypevar a chan stringa = make(chan string)// ORa := make(chan string) 通信操作符 <- 发送ch <- int1 用通道 ch 发送变量 int1 接收int2 = <- ch 12345678910111213141516171819202122232425262728293031package mainimport ( ...
相关推荐
2024-11-12
9_读写数据
读写数据读取用户输入 类似于 C 中的 scanf() 函数, Go 中也有对应的针对标准输入输出函数。 12345678910111213141516171819202122232425package mainimport "fmt"var ( str string input = "11.22 / 12 / Python" format = "%f / %d / %s" f_num float32 i_num int s string)func main(){ // 从标准输出框中读取 fmt.Println("This is a test for a scanf function...") fmt.Scanln(&str) // Scanln 扫描来自标准输入的文本,空格分割 // fmt.Scanf("%s", str) // Scanf ...
2024-11-10
7_结构和方法
结构和方法结构体工厂Go 中不支持向面向对象语言的方法那样构造类的子方法,但是可以根据构造子工厂的方法来实现子方法。一般来说,工厂的名字用 New 开头。 1234567891011type File struct { fd int name string}func NewFile(fd int, name string) *File { if fd < 0 { return nil } return &File{fd, name}} 如果结构体的命名开头是小写的话,可以强制要求使用结构体工厂。 匿名字段和内嵌结构体结构体可以包含一个或多个 匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型就是字段的名字。匿名字段本身可以是一个结构体类型,即 结构体可以包含内嵌结构体。 可以粗略地将这个和面向对象语言中的 继承 概念相比较,随后将会看到它被用来模拟类似继承的行为。Go 语言中的继承是通过内嵌或组...
2024-11-04
1_基础知识
基础知识本部分内容会囊括原书的 前言、Go 语言的起源发展和普及、安装与运行环境、编辑器、集成开发与其它工具 等内容,且会省略很多介绍性的内容。 Go RuntimeGo 编译器直接产生本地可执行的代码,但这些代码仍运行在 Go 的 runtime 当中。这个 runtime 类似于 JAVA 中用到的 JVM,负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片等。 类似的,Go 拥有类似与 JAVA 的垃圾回收机制(标记-清除回收器)用于自动的垃圾回收操作。但同样的,自动的垃圾回收机制并不能规避所有因为内存带来的问题,分配和回收内容都是消耗 CPU 资源的行为。 Go 的可执行文件大小要比对应的源码文件要大很多,说明 Go 的 runtime 嵌入到了每一个可执行文件中,相对于较大的文件大小,Go 编译出来的程序的部署要更加的方便,因为它只需要一个静态文件即可,而避免了像 Python 那样需要为不同版本的依赖甚至是软件额外处理的麻烦。 调试器fmt.Printf() 中的占位符说明 %+v 打印包括字段在内的实例完整信息 %#v 打印包括字段和限...
2024-11-01
10_错误处理及测试
错误处理及测试
2024-11-02
11_协程与通道
协程与通道并发、并行和协程协程定义 并发:一个并发程序能在一个处理器或内核使用多个线程执行 并行:一个并行程序在某个时间点能使用多个处理器资源 goroutine 是根据一个或以上的线程的可用性,映射在它们之上;协程调度器在 Go 运行的时候就能完成对协程的调度。 goroutine 和 coroutine 的区别: goroutine 意味着并行,协程一般来说并不能这样 goroutine 通过信道来相互通信;coroutine 通过让出和恢复操作来通信 协程间的信道channel 的创建123456// var identifier chan datatypevar a chan stringa = make(chan string)// ORa := make(chan string) 通信操作符 <- 发送ch <- int1 用通道 ch 发送变量 int1 接收int2 = <- ch 12345678910111213141516171819202122232425262728293031package mainimport ( ...
2024-11-11
8_接口和反射
接口和反射接口的定义方式1234type Namer interface { Method1(param_list) return_type Method2(param_list) return_type } 接口相对于其他面向对象的语言,是 Go 中的多态的表现。具体代码展示如下: 1234567891011121314151617181920212223242526272829303132333435363738package mainimport "fmt"type Shaper interface { Area() float32}type Square struct { side float32}func (sq *Square) Area() float32 { return sq.side * sq.side}type Rectangle struct { length, width float32}fun...
avatar
xhj
相关学习笔记
文章
599
标签
109
分类
29
Follow Me
公告
欢迎来到我的博客
目录
  1. 1. 网络
    1. 1.1. TCP 服务器
    2. 1.2. HTTP 服务器
    3. 1.3. 访问并读取页面数据(网络请求)
最新文章
14-FastAPI接口与项目闭环2026-10-14
13-主智能体搭建与异步执行2026-10-13
12-RAGFlow子智能体与知识库准备2026-10-12
11-数据库查询子智能体与MySQL工具2026-10-11
10-网络搜索子智能体与Tavily工具2026-10-10
© 2025 - 2026 By xhj框架 Hexo 8.1.2|主题 Butterfly 5.5.4