예제 #1
0
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()
}
예제 #2
0
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())
}
예제 #3
0
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())
}