前言
GO语言的学习必然需要实战实践,巩固技能
课程目录
- 猜谜游戏
- 在线词典
- SOCKS5代理
主要内容
猜谜游戏
[游戏介绍]
系统随机生成一个数,通过输入数,系统判断输入的数正确与否
[生成随机数]
package main
import (
"fmt"
"math/rand"
)
func main(){
maxnum := 100
secretnumber := rand.Intn(maxnum)
fmt.Println("The secret number is ", secretnumber)
}
[生成随机数V2]
package main
import (
"fmt"
"math/rand"
"time"
)
func main {
maxNum := 100
rand.Seed(time.Now(.UnixNano()secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
}
[读取用户输入]
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main(){
maxNum := 100
rand.Seed(time.Now(.UnixNano()secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)
input, err := reader.fteadString("\n')//读取一行输入
if err != nil {
fmt.Println("An error occured while reading input. Please try again",err)
return
}
input = strings.TrimSuffix(input, "n")//去掉换行符
guess,err := strconv.Atoi(input)//转换成数字
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
return
}
fmt.Println("You guess is",guess)
}
[实现判断逻辑]
[实现游戏循环]
在线词典
[抓包]
[代码生成]
创建请求的data是一个流
生成代码解读
[生成request body]
[解析 response body]
[打印结果]
源代码:hi-hi.cn/go
SOCKS5代理
[SOCKS5介绍]
SOCKS5是明文传输,方便过防火墙访问
[原理]
[TCP echo server]
实现发送回复
[auth]
[请求阶段]
得到url等
[relay阶段]
利用TCP协议建立连接
浏览器里测试代理