func handleClient(conn net.Conn, dict dictionary.Dictionary) { defer conn.Close() msg, ok := protocol.ReadMessage(conn) if !ok { return } fmt.Println(msg) errorMsg := "7: Error" successMsg := "6: Success" var retMsg string switch msg[0] { case '1': // get key := msg[3:] value, ok := dict.Get(key) if ok { retMsg = "5: " + value } else { retMsg = errorMsg } case '2': // add split := strings.Split(msg[3:], "\t") key, value := split[0], split[1] ok := dict.Add(key, value) if ok { retMsg = successMsg } else { retMsg = errorMsg } case '3': // remove key := msg[3:] ok := dict.Remove(key) if ok { retMsg = successMsg } else { retMsg = errorMsg } case '4': // update split := strings.Split(msg[3:], "\t") key, value := split[0], split[1] ok := dict.Update(key, value) if ok { retMsg = successMsg } else { retMsg = errorMsg } case '8': // server get } protocol.WriteMessage(conn, retMsg) }
func query(server Server, message string) string { conn, err := net.Dial("tcp", server.ip+":"+strconv.Itoa(server.port)) if err != nil { panic(err) } defer conn.Close() protocol.WriteMessage(conn, message) msg, ok := protocol.ReadMessage(conn) if !ok { panic("OMG") } return msg }