52 lines
908 B
Go
52 lines
908 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"flag"
|
|
"os"
|
|
)
|
|
|
|
type Server interface {
|
|
Run()
|
|
}
|
|
|
|
func main() {
|
|
var challenge int
|
|
flag.IntVar(&challenge, "challenge",11, "Challenge number")
|
|
flag.Parse()
|
|
|
|
var port uint16
|
|
port = 13370
|
|
var server Server
|
|
switch challenge {
|
|
case 0:
|
|
server = NewEchoServer(port);
|
|
case 1:
|
|
server = NewPrimeServer(port);
|
|
case 2:
|
|
server = NewMeansServer(port);
|
|
case 3:
|
|
server = NewChatServer(port);
|
|
case 4:
|
|
server = NewDatabaseServer(port);
|
|
case 5:
|
|
server = NewProxyServer(port);
|
|
case 6:
|
|
server = NewSpeedServer(port);
|
|
case 7:
|
|
server = NewReverseServer(port);
|
|
case 8:
|
|
server = NewSecureServer(port);
|
|
case 9:
|
|
server = NewJobServer(port);
|
|
case 10:
|
|
server = NewVcsServer(port);
|
|
case 11:
|
|
server = NewPestServer(port);
|
|
default:
|
|
fmt.Printf("Unknown challenge\n")
|
|
os.Exit(1)
|
|
}
|
|
|
|
server.Run()
|
|
} |