|  |  |  | @ -18,37 +18,48 @@ import ( | 
			
		
	
		
			
				
					|  |  |  |  | 	"flag" | 
			
		
	
		
			
				
					|  |  |  |  | 	"log" | 
			
		
	
		
			
				
					|  |  |  |  | 	clientserver "sample-choose-ad/src/client_server" | 
			
		
	
		
			
				
					|  |  |  |  | 	"sync" | 
			
		
	
		
			
				
					|  |  |  |  | 	// req_types "sample-choose-ad/src/requests_types"
 | 
			
		
	
		
			
				
					|  |  |  |  | 	customtypes "sample-choose-ad/src/custom_types" | 
			
		
	
		
			
				
					|  |  |  |  | 	"strings" | 
			
		
	
		
			
				
					|  |  |  |  | ) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // ============
 | 
			
		
	
		
			
				
					|  |  |  |  | var partners []customtypes.PartnersAddress | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | func main() { | 
			
		
	
		
			
				
					|  |  |  |  | 	var wg sync.WaitGroup | 
			
		
	
		
			
				
					|  |  |  |  | 	log.Println("Starting server") | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/* | 
			
		
	
		
			
				
					|  |  |  |  | 		file := flag.String("f", "", "path to file") | 
			
		
	
		
			
				
					|  |  |  |  | 			port := flag.String("p", "5050", "listening port") | 
			
		
	
		
			
				
					|  |  |  |  | 	port := flag.String("p", "", "-p 5050") | 
			
		
	
		
			
				
					|  |  |  |  | 	addressesList := flag.String("d", "", "-d '10.10.10.10:5050,10.10.10.20:5050'") | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	flag.Parse() | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			if *file == "" { | 
			
		
	
		
			
				
					|  |  |  |  | 				fmt.Println("Please specify the path to the file!") | 
			
		
	
		
			
				
					|  |  |  |  | 				return | 
			
		
	
		
			
				
					|  |  |  |  | 	if *port == "" { | 
			
		
	
		
			
				
					|  |  |  |  | 		log.Fatalln("Error: Port number is require!") | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	*/ | 
			
		
	
		
			
				
					|  |  |  |  | 	port := flag.String("p", "", "-p 5050") | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	flag.Parse() | 
			
		
	
		
			
				
					|  |  |  |  | 	if *addressesList == "" { | 
			
		
	
		
			
				
					|  |  |  |  | 		log.Fatalln("Error: Partners list is require!") | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if *port == "" { | 
			
		
	
		
			
				
					|  |  |  |  | 		log.Println("Port number is require!") | 
			
		
	
		
			
				
					|  |  |  |  | 	// Parse first 10 ip:port pairs into `[]partners` slise
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	for i, p := range strings.Split(*addressesList, ",") { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if i == 10 { | 
			
		
	
		
			
				
					|  |  |  |  | 			log.Println("Warning: Partners count must be less or equal 10!") | 
			
		
	
		
			
				
					|  |  |  |  | 			return | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	wg.Add(1) | 
			
		
	
		
			
				
					|  |  |  |  | 	go clientserver.StartServer(*port, &wg) | 
			
		
	
		
			
				
					|  |  |  |  | 	wg.Wait() | 
			
		
	
		
			
				
					|  |  |  |  | 		ip, port, err := clientserver.ParsePartnersAddress(p) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if err != nil { | 
			
		
	
		
			
				
					|  |  |  |  | 			log.Println(err) | 
			
		
	
		
			
				
					|  |  |  |  | 			continue | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		partners = append(partners, customtypes.PartnersAddress{ | 
			
		
	
		
			
				
					|  |  |  |  | 			Ip:   ip, | 
			
		
	
		
			
				
					|  |  |  |  | 			Port: port}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	clientserver.StartServer(*port, partners) | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |