内容简介:SOCKS Protocol Version 5 Library.Full TCP/UDP and IPv4/IPv6 support. Goals: KISS, less is more, small API, code is like the original protocol.
socks5
SOCKS Protocol Version 5 Library.
Full TCP/UDP and IPv4/IPv6 support. Goals: KISS, less is more, small API, code is like the original protocol.
Install
$ go get github.com/txthinking/socks5
Struct is like concept in protocol
- Negotiation:
-
type NegotiationRequest struct
func NewNegotiationRequest(methods []byte) func (r *NegotiationRequest) WriteTo(w *net.TCPConn) func NewNegotiationRequestFrom(r *net.TCPConn)
-
type NegotiationReply struct
func NewNegotiationReply(method byte) func (r *NegotiationReply) WriteTo(w *net.TCPConn) func NewNegotiationReplyFrom(r *net.TCPConn)
-
- User and password negotiation:
-
type UserPassNegotiationRequest struct
func NewUserPassNegotiationRequest(username []byte, password []byte) func (r *UserPassNegotiationRequest) WriteTo(w *net.TCPConn) func NewUserPassNegotiationRequestFrom(r *net.TCPConn)
-
type UserPassNegotiationReply struct
func NewUserPassNegotiationReply(status byte) func (r *UserPassNegotiationReply) WriteTo(w *net.TCPConn) func NewUserPassNegotiationReplyFrom(r *net.TCPConn)
-
- Request:
-
type Request struct
func NewRequest(cmd byte, atyp byte, dstaddr []byte, dstport []byte) func (r *Request) WriteTo(w *net.TCPConn) func NewRequestFrom(r *net.TCPConn)
-
- Reply:
-
type Reply struct
func NewReply(rep byte, atyp byte, bndaddr []byte, bndport []byte) func (r *Reply) WriteTo(w *net.TCPConn) func NewReplyFrom(r *net.TCPConn)
-
- Datagram:
-
type Datagram struct
func NewDatagram(atyp byte, dstaddr []byte, dstport []byte, data []byte) func NewDatagramFromBytes(bb []byte) (*Datagram, error) func (d *Datagram) Bytes() []byte
-
Advanced API
You can process client's request by yourself after reading *Request from client. Also, here is a advanced interfaces.
-
type Server struct
-
type Handler interface
TCPHandle(*Server, *net.TCPConn, *Request) error UDPHandle(*Server, *net.UDPAddr, *Datagram) error
This is example:
s, _ := NewClassicServer(addr, ip, username, password, tcpTimeout, tcpDeadline, udpDeadline, udpSessionTime) s.Run(Handler)
- If you want a standard socks5 server, pass in nil
- If you want to handle data by yourself, pass in a custom Handler
Users:
以上所述就是小编给大家介绍的《socks5 - SOCKS Protocol Version 5 Library in Go. Full TCP/UDP and IPv4/IPv6 support》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python深度学习
[美] 弗朗索瓦•肖莱 / 张亮 / 人民邮电出版社 / 2018-8 / 119.00元
本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建......一起来看看 《Python深度学习》 这本书的介绍吧!