Exemplo n.º 1
0
    // Start is called before the first frame update
    void Start()
    {
        messageHandlers = new Dictionary <Type, HandleMessage>();
        messageHandlers.Add(typeof(NetworkDataTelemetry), HandleTelemetry);
        messageHandlers.Add(typeof(NetworkDataPlayerInfo), HandlePlayerInfo);
        messageHandlers.Add(typeof(NetworkDataPlayerLeft), HandlePlayerLeave);


        NetworkDataTypes.Initialize();
        messageHandlerQueue = new Locked <Queue <NetworkData> >(new Queue <NetworkData>());
        players             = new Dictionary <int, GameObject>();
        mainTask            = Task.Run(Connect);
        DontDestroyOnLoad(this);
    }
Exemplo n.º 2
0
        public static async Task <NetworkClient> Connect(IPAddress ip, int port)
        {
            NetworkDataTypes.Initialize();
            TcpClient client      = new TcpClient();
            Task      connectTask = client.ConnectAsync(ip, port);
            Task      timeoutTask = Task.Delay(15000);
            await Task.WhenAny(connectTask, timeoutTask);

            if (!connectTask.IsCompleted)
            {
                Console.WriteLine("connection timed out");
                return(null);
            }
            else
            {
                return(new NetworkClient(client));
            }
        }
Exemplo n.º 3
0
 public NetworkServer(int port)
 {
     NetworkDataTypes.Initialize();
     this.port = port;
 }