|
|
|
@ -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") |
|
|
|
|
|
|
|
|
|
flag.Parse() |
|
|
|
|
|
|
|
|
|
if *file == "" { |
|
|
|
|
fmt.Println("Please specify the path to the file!") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
*/ |
|
|
|
|
port := flag.String("p", "", "-p 5050") |
|
|
|
|
addressesList := flag.String("d", "", "-d '10.10.10.10:5050,10.10.10.20:5050'") |
|
|
|
|
|
|
|
|
|
flag.Parse() |
|
|
|
|
|
|
|
|
|
if *port == "" { |
|
|
|
|
log.Println("Port number is require!") |
|
|
|
|
return |
|
|
|
|
log.Fatalln("Error: Port number is require!") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if *addressesList == "" { |
|
|
|
|
log.Fatalln("Error: Partners list 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 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ip, port, err := clientserver.ParsePartnersAddress(p) |
|
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
log.Println(err) |
|
|
|
|
continue |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
partners = append(partners, customtypes.PartnersAddress{ |
|
|
|
|
Ip: ip, |
|
|
|
|
Port: port}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
wg.Add(1) |
|
|
|
|
go clientserver.StartServer(*port, &wg) |
|
|
|
|
wg.Wait() |
|
|
|
|
clientserver.StartServer(*port, partners) |
|
|
|
|
} |
|
|
|
|