(module ModuleId, operate ModuleOperate, args *bytes.Buffer)
| 98 | } |
| 99 | |
| 100 | func SendToServer(module ModuleId, operate ModuleOperate, args *bytes.Buffer) (*net.UDPConn, *bytes.Buffer, error) { |
| 101 | ip := hostIp |
| 102 | if strings.Contains(ip, ":") { |
| 103 | ip = "[" + ip + "]" |
| 104 | } |
| 105 | conn, err := net.Dial("udp", ip+":"+strconv.Itoa(hostPort)) |
| 106 | if err != nil { |
| 107 | return nil, nil, err |
| 108 | } |
| 109 | sendBuffer := bytes.Buffer{} |
| 110 | |
| 111 | conn.SetReadDeadline(time.Now().Add(time.Minute)) |
| 112 | msg := DebugMessage{Module: uint16(module), Operate: uint16(operate), Result: 0} |
| 113 | if args != nil { |
| 114 | msg.Args = args.Bytes() |
| 115 | } |
| 116 | encoder := gob.NewEncoder(&sendBuffer) |
| 117 | if err := encoder.Encode(msg); err != nil { |
| 118 | return conn.(*net.UDPConn), nil, err |
| 119 | } |
| 120 | |
| 121 | conn.Write(sendBuffer.Bytes()) |
| 122 | |
| 123 | var recv *bytes.Buffer |
| 124 | if module > MODULE_MAX { |
| 125 | recv, err = RecvFromServerMulti(conn.(*net.UDPConn)) |
| 126 | } else { |
| 127 | recv, err = RecvFromServer(conn.(*net.UDPConn)) |
| 128 | } |
| 129 | return conn.(*net.UDPConn), recv, err |
| 130 | } |
| 131 | |
| 132 | func SendToClient(conn *net.UDPConn, remote *net.UDPAddr, result uint32, args *bytes.Buffer) { |
| 133 | buffer := bytes.Buffer{} |
no test coverage detected