package mmlclient import ( "fmt" "strings" ) // 发送MML // ip 网元IP地址 // msg 指令 func MMLSendMsgToString(ip, msg string) (string, error) { // 创建MMLClient实例 client, err := NewMMLClient(ip) if err != nil { return "", fmt.Errorf("创建MMLClient实例失败:%v", err) } defer client.Close() // 发送数据 err = client.Send(msg) if err != nil { return "", fmt.Errorf("发送数据失败:%v", err) } // 接收数据 data, err := client.Receive() if err != nil { return "", fmt.Errorf("接收数据失败:%v", err) } return data, nil } // 发送MML // ip 网元IP地址 // msg 指令 func MMLSendMsgToMap(ip, msg string) (map[string]string, error) { // 发送获取数据 str, err := MMLSendMsgToString(ip, msg) // 初始化一个map用于存储拆分后的键值对 m := make(map[string]string) var items []string // 按照分隔符"\r\n"进行拆分 if strings.Contains(str, "\r\n") { items = strings.Split(str, "\r\n") } // 按照分隔符"\n"进行拆分 if strings.Contains(str, "\n") { items = strings.Split(str, "\n") } // 遍历拆分后的结果 for _, item := range items { var pair []string // 按照分隔符"="进行拆分键值对 if strings.Contains(item, "=") { pair = strings.Split(item, "=") } // 按照分隔符":"进行拆分键值对 if strings.Contains(item, ":") { pair = strings.Split(item, ":") } if len(pair) == 2 { // 将键值对存入map中 m[pair[0]] = pair[1] } } return m, err }