Пример #1
0
func main() {
	log.SetFlags(log.LstdFlags | log.Lshortfile)
	log.Println("Version: 1.0")
	index, _ := strconv.Atoi(os.Args[1])
	log.Println("index:", index)

	var passer msgpasser.Passer
	passer.Init(9999)
	time.Sleep(3 * time.Second)

	for z := 0; z < 30; z++ {
		log.Println("Start the", z, "round!")

		addr, _ := net.ResolveUDPAddr("udp", "127.0.0.1:9999")
		conn, _ := net.DialUDP("udp", nil, addr)
		data := msgpasser.GameRoomData{"game room info", 0, nil, len(names), names[index], "start", ""}
		data.Players = make([]msgpasser.PlayerInfo, len(names))
		for i := range names {
			data.Players[i].Ip = addrs[i]
			data.Players[i].Name = names[i]
		}
		b, err := json.Marshal(&data)
		log.Println(string(b))
		if err != nil {
			log.Println(err)
		}
		_, err = conn.Write(b)
		if err != nil {
			log.Println(err)
		}

		// To avoid too many input happen
		time.Sleep(10 * time.Second)

		x := 120
		y := 3
		for i := 0; i < x; i++ {
			for j := 0; j < y; j++ {
				msg := msgpasser.Data{fmt.Sprintf("%v %d", names[index], i*y+j), true}
				b, _ = json.Marshal(&msg)
				conn.Write(b)
			}
			time.Sleep(300 * time.Millisecond)
		}

		// time.Sleep(10 * time.Second)

		data = msgpasser.GameRoomData{"game room info", 0, nil, len(names), names[index], "close", ""}
		b, err = json.Marshal(&data)
		_, err = conn.Write(b)

		time.Sleep(10 * time.Second)

		log.Println("Finish the", z, "round!")
	}
}
Пример #2
0
func main() {
	log.SetFlags(log.LstdFlags | log.Lshortfile)
	log.Println("Version: 1.0")

	var passer msgpasser.Passer
	passer.Init(9999)
	time.Sleep(3 * time.Second)

	for i, addrS := range addrs {
		addr, _ := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:9999", addrS))
		conn, _ := net.DialUDP("udp", nil, addr)
		data := msgpasser.GameRoomData{"game room info", 0, nil, len(names), names[i], "join", localName}
		data.Players = make([]msgpasser.PlayerInfo, len(names))
		for i := range names {
			data.Players[i].Ip = addrs[i]
			data.Players[i].Name = names[i]
		}
		b, err := json.Marshal(&data)
		log.Println(string(b))
		if err != nil {
			log.Println(err)
		}
		_, err = conn.Write(b)
		if err != nil {
			log.Println(err)
		}
	}

	addr, _ := net.ResolveUDPAddr("udp", "127.0.0.1:9999")
	conn, _ := net.DialUDP("udp", nil, addr)

	// To avoid too many input happen
	time.Sleep(3 * time.Second)

	x := 10000
	y := 3
	for i := 0; i < x; i++ {
		for j := 0; j < y; j++ {
			msg := msgpasser.Data{fmt.Sprintf("%v %d", localName, i*y+j), true}
			b, _ := json.Marshal(&msg)
			conn.Write(b)
		}
		time.Sleep(300 * time.Millisecond)
	}

	for {
		time.Sleep(30 * time.Second)
		log.Println("I am still alive!")
	}
}