package netwrk import ( "log" "net" ) type Client struct { name string conn net.Conn ready bool } type ClientPool struct { clients map[string]Client } type GameClients struct { client1 chan GameMessage client2 chan GameMessage } type GameChans struct { games map[string]GameClients } var clientPool *ClientPool var gameChans *GameChans // Starts listening on port 12345 for TCP connections // Also creates client pool and game connection singletons func Listen() { clientPool = &ClientPool{ clients: map[string]Client{}, } listener, err := net.Listen("tcp", "127.0.0.1:12345") if err != nil { log.Fatal(err) } defer listener.Close() go func() { for { conn, err := listener.Accept() log.Println("got a connection!") if err != nil { log.Println(err) continue } go handleLobbyConnection(conn) } }() gameChans = &GameChans{ games: map[string]GameClients{}, } gameListener, err := net.Listen("tcp", "127.0.0.1:42069") if err != nil { log.Fatal(err) } defer gameListener.Close() for { conn, err := gameListener.Accept() if err != nil { log.Println(err) continue } handleGameConnection(conn) } }