func main() {
	LoadCfg()
	TCPServerManager.TCPServerManagerStart()
	KolonseWeb.DefaultLogs().Info("加载代理服务配置:\n%v", TCPServerManager.Dump())
	KolonseWeb.DefaultApp.Get("/GetPort", func(req *HttpLib.Request, res *HttpLib.Response, next Type.Next) {
		domain := req.URL.Query().Get("domain")
		KolonseWeb.DefaultLogs().Info("处理客户端请求 Req Domain:%v,Client Addr:%v", domain, req.RemoteAddr)
		serverInfo := TCPServerManager.GetServerInfo(domain)
		res.Json(serverInfo) // 返回服务状态
	})
	KolonseWeb.DefaultApp.Listen("0.0.0.0", *Port)
}
Exemple #2
0
func (si *ServerInfo) handleConnection(conn net.Conn) {
	KolonseWeb.DefaultLogs().Info("Recv Conn,RemoteAddr:%v %v %v %v",
		conn.RemoteAddr().Network(), conn.RemoteAddr().String(),
		conn.LocalAddr().Network(), conn.LocalAddr().String())
	// 收到一个连接 读取开始 i'm proxy server
	buff := make([]byte, 10000) //  缓存长度
	err := si.ReadLessNByte(conn, len(PROXY_SERVER_MARK), buff)
	if err != nil {
		conn.Close()
		return
	}
}
Exemple #3
0
func (si *ServerInfo) Start() {
	ln, err := net.Listen("tcp", fmt.Sprintf(":%v", si.Port))
	if err != nil {
		panic(err)
	}
	KolonseWeb.DefaultLogs().Info("TCP Server Listen On %v", si.Port)
	for {
		conn, err := ln.Accept()
		if err != nil {
			// handle error
		}
		go si.handleConnection(conn)
	}
}