关闭页面特效

Golang实现代理TCP客户端

目标网站xxx.com,代理服务器xxxproxy.com,通过代理服务器实现流量转发。

package main func handle(src net.Conn){ dst,err:=net.Dial("tcp","xxx.com:80") if err!=nil{ log.Fatalln("Unable to connect out unreachable host") } defer dst.Close() //io.Copy确保第一次来自代理服务器的数据复制到目标主机 //因为io.Copy函数是一个阻塞函数,阻塞直到关闭连接,所以将其包装进一个groutine中,并行执行。这样handle中的执行就可以继续进行,并可以进行第二次io.Copy go func(){ if _,err:=io.Copy(dst,src);err!=nil{ log.Fatalln(err) } }() if _,err:=io.Copy(src,dst);err!=nil{ log.Fatalln(err) } } func main(){ listener,err:=net.Listen("tcp","xxxproxy.com:80") if err!=nil{ log.Fatalln("ubable to bin to port") } for { conn,err:=listener.Accept() if err!=nil{ log.Fatalln("Ubable to accept connection") } go handle(conn) } }

__EOF__

作  者WeberBon
出  处https://www.cnblogs.com/Weber-security/p/17346870.html
关于博主:185猛男
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   Weber·Bon  阅读(170)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
历史上的今天:
2020-04-23 木马的制作|使用木马进行攻击
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示