今天是第4篇笔记打卡学习,终于结束出差了,补一下课,学习一下go语言的实战案例,以下是知识点总结:
①用时间戳初始化随机数种子,如果不设置rand.seed生成的随机数是固定的
②读取用户输入
go语言中的读取一行输入:
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString("\n")
go中提供了去掉换行符的方法:strings.TrimSuffix(input, "\n")
还提供了转换成数字的方法:strconv.Atoi(input)
③go中的发送请求信息和接收返回信息及相关的处理
copy as cURL
在这个网站可以生成go的代码
defer resp.Bode.Close()关闭资源,是自下而上的关闭。
这样会有一个问题,输入是固定的,所以我们要把json序列化。
解析resp body
写一个结构体,与返回值的字段一一对应,但是resp中的字段非常多,很容易出错,所以我们还是要多多利用代码生成。
④socks5代理介绍
在防火墙内部让授权的用户在单个端口对权限资源进行访问。
工作原理:
Socks5代理是一种网络代理协议,可以将客户端请求转发到目标服务器,并将服务器响应传递回客户端。它的工作原理如下:
1,客户端发送请求到Socks5代理服务器: 当客户端需要访问目标服务器时,它会将请求发送到Socks5代理服务器,请求中包含目标服务器的IP地址、端口号、请求协议等信息。
2,Socks5代理服务器与目标服务器建立连接: Socks5代理服务器根据请求中的IP地址和端口号,与目标服务器建立连接。
3,Socks5代理服务器认证客户端身份: 在建立连接时,Socks5代理服务器会要求客户端提供用户名和密码,以验证客户端的身份。如果验证通过,Socks5代理服务器会继续处理客户端请求,否则会拒绝请求。
4,Socks5代理服务器转发请求到目标服务器: 如果客户端身份验证通过,Socks5代理服务器会将客户端请求转发给目标服务器,包括请求中的协议、目标服务器IP地址和端口号等信息。
5,目标服务器响应请求: 目标服务器接收到请求后,会处理请求,并将响应发送回Socks5代理服务器。
6,Socks5代理服务器转发响应到客户端: Socks5代理服务器接收到目标服务器的响应后,会将响应转发给客户端。
需要注意的是,Socks5代理协议支持TCP 和UDP协议,因此可以用于访问不同类型的网络服务。Socks5代理也支持加密和认证功能,可以提供更高的安全性和保护用户隐私。
一个简单的例子,
go关键字是goroutine
goroutine;是建立在线程上的轻量级的抽象,它允许我们以非常低的代价在同一个地址空间中并行的执行多个函数或者方法,相比于线程,它的创建和销毁代价小很多,并且它的调度室独立于线程的。在golang中使用go关键字创建一个goroutine。
实现认证阶段
请求阶段
relay阶段
推荐的学习路线