// 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); }
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)); } }
public NetworkServer(int port) { NetworkDataTypes.Initialize(); this.port = port; }