2023-09-19 22:18:20 +02:00
|
|
|
package main
|
|
|
|
|
|
2023-09-21 19:10:27 +02:00
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"flag"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
2023-09-19 22:18:20 +02:00
|
|
|
|
2023-09-21 19:10:27 +02:00
|
|
|
type Server interface {
|
|
|
|
|
Run()
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-19 22:18:20 +02:00
|
|
|
func main() {
|
2023-09-21 19:10:27 +02:00
|
|
|
var challenge int
|
2023-11-23 19:37:01 +01:00
|
|
|
flag.IntVar(&challenge, "challenge",9, "Challenge number")
|
2023-09-21 19:10:27 +02:00
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
|
|
var port uint16
|
|
|
|
|
port = 13370
|
|
|
|
|
var server Server
|
|
|
|
|
switch challenge {
|
|
|
|
|
case 0:
|
|
|
|
|
server = NewEchoServer(port);
|
|
|
|
|
case 1:
|
|
|
|
|
server = NewPrimeServer(port);
|
2023-09-22 21:22:51 +02:00
|
|
|
case 2:
|
|
|
|
|
server = NewMeansServer(port);
|
2023-09-24 16:01:57 +02:00
|
|
|
case 3:
|
|
|
|
|
server = NewChatServer(port);
|
2023-09-24 21:33:20 +02:00
|
|
|
case 4:
|
|
|
|
|
server = NewDatabaseServer(port);
|
2023-09-26 22:39:30 +02:00
|
|
|
case 5:
|
|
|
|
|
server = NewProxyServer(port);
|
|
|
|
|
case 6:
|
|
|
|
|
server = NewSpeedServer(port);
|
2023-11-16 18:49:14 +01:00
|
|
|
case 7:
|
|
|
|
|
server = NewReverseServer(port);
|
2023-11-18 10:59:36 +01:00
|
|
|
case 8:
|
|
|
|
|
server = NewSecureServer(port);
|
2023-11-23 19:37:01 +01:00
|
|
|
case 9:
|
|
|
|
|
server = NewJobServer(port);
|
2023-09-21 19:10:27 +02:00
|
|
|
default:
|
|
|
|
|
fmt.Printf("Unknown challenge\n")
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server.Run()
|
2023-09-19 22:18:20 +02:00
|
|
|
}
|