Exemple #1
0
func main() {
	args := os.Args
	if len(args) != 4 {
		fmt.Println("Usage: [aserver UDP ip:port] [fserver RPC ip:port] [secret]")
		os.Exit(-1)
	}
	aserverUDPIpPort := args[1]
	fserverRCPIpPort := args[2]
	secret := parseSecretArg(args[3])

	udpListener := clientServerUtils.InitUDPConn(aserverUDPIpPort)

	//Initialize hash table of (udpIpPort, nonce) key-value pairs
	var nonceMap clientServerUtils.ConcurrentMap
	nonceMap.Map = make(map[string]int64)

	//Start listen/receive connection loop
	for {
		var buf [1024]byte
		msgLen, clientUDPAddr, err := udpListener.ReadFromUDP(buf[:])
		if err != nil {
			fmt.Println("Error on ReadFromUDP: ", err)
		} else {
			go handleUDPConn(udpListener, clientUDPAddr, fserverRCPIpPort, nonceMap, secret, buf[0:msgLen])
		}
	}
	udpListener.Close()
}