func Close(conn net.Conn, pp *kdp.KDP) { remoteAddr, ok := pp.Get("RemoteAddr") if !ok { panic("协议中没有找到 RemoteAddr") } cp, ok := ConnMap[remoteAddr] if !ok { return } cp.dstConn.Close() }
func Req(conn net.Conn, pp *kdp.KDP) { remoteAddr, ok := pp.Get("RemoteAddr") if !ok { panic("协议中没有找到 RemoteAddr") } cp, ok := ConnMap[remoteAddr] if !ok { // 创建一个新的连接 cpNew, err := Create(conn, remoteAddr) if err != nil { // 发送关闭连接请求 return } ConnMap[remoteAddr] = cpNew cp = cpNew } // 将数据发送到连接上 cp.dstConn.Write(pp.GetBody()) }
func (si *ServerInfo) ProcessProtoRes(conn net.Conn, pp *kdp.KDP) { remoteAddr, ok := pp.Get("RemoteAddr") if !ok { // 连接已经不存在 通知客户端关闭连接 KolonseWeb.DefaultLogs().Error("协议不存在 RemoteAddr", remoteAddr) return // } pWho, ok := si.Parters[remoteAddr] if !ok { // 连接已经不存在 通知客户端关闭连接 KolonseWeb.DefaultLogs().Error("RemoteAddr:%v not found", remoteAddr) return // } // 发送消息 KolonseWeb.DefaultLogs().Info("向请求源 %v 发送数据,长度:%v", conn.RemoteAddr().String(), len(pp.GetBody())) pWho.conn.Write(pp.GetBody()) }