Beispiel #1
0
        public static async Task <Connection> ConnectToRoom(DiscoveryRoom room, bool waitAllHandshake = true, CancellationToken token = default)
        {
            var remoteEP = new IPEndPoint(room.Address, room.Port);

            if (!PeerToPeerRoomData.TryUnpack(room.Data, room.Data.Length, out var data))
            {
                throw new Exception("unpack room info");
            }
            var impl = await new ConnectToLocalOwnerTask(remoteEP, data, room.DiscoveryPort, token).Run();

            return(await TryWaitAllHandshake(new Connection(impl), waitAllHandshake, token));
        }