func main() { announce_client.InitAnnounceUDP() timestamp.InitTimeStamp() cryptowrapper.GenerateRSAKey() var c message.CalendarInfo // c.Init(strings.Trim(cmd[0], "\n")) c.Init() var mul tcpNet.Multicast mul.Init(&c) reader := bufio.NewReader(os.Stdin) commands, _ := reader.ReadString('\n') cmd := strings.Split(commands, " ") //commands, _ = reader.ReadString('\n') for commands != "exit" { cmd = strings.Split(commands, " ") switch cmd[0] { case "CreateGroup": mul.AddGroup(strings.Trim(cmd[1], "\n")) //group name case "join": mul.SendJoinRequest(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n"), strings.Trim(cmd[3], "\n")) //dest, group, invite_code case "VoteRequest": mul.VoteRequest(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n")) //(mem, group string) case "VoteReply": mul.VoteReply(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n")) //dest, decision string case "csRequest": mul.LockRequest(strings.Trim(cmd[1], "\n")) //group case "csRelease": mul.LockRelease(strings.Trim(cmd[1], "\n")) case "operation": mul.UpdateSend(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n")) //group, content // case "uni": mul.SendUniMessage("lock_request", strings.Trim(cmd[1], "\n"),strings.Trim(cmd[2], "\n"),5000) // case "multi": mul.SendMulticast("lock_reply", strings.Trim(cmd[1], "\n"),strings.Trim(cmd[2], "\n"),5000) // case "request": mul.LockRequest(strings.Trim(cmd[1], "\n")) // case "release": mul.LockRelease(strings.Trim(cmd[1], "\n")) // case "join": mul.VoteRequest(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n")) // case "info": go mul.SendInfo(strings.Trim(cmd[1], "\n"), strings.Trim(cmd[2], "\n")) case "exit": mul.Info.WriteToFile("communication/message/config.txt") os.Exit(0) default: mul.Info.WriteToFile("communication/message/config.txt") os.Exit(0) } commands, _ = reader.ReadString('\n') commands = strings.Trim(commands, "\n") fmt.Println(commands) } }