public void Connect(string deviceName) { var detector = new PortDetector(); var ports = detector.GetUdpPorts("Albion-Online"); foreach (var port in ports) { _udpPorts.Add(port); } var builder = ReceiverBuilder.Create(); IncomeLowEventsSource = new IncomeLowEventsSource(builder); OutcomeLowEventsSource = new OutcomeLowEventsSource(builder); _receiver = builder.Build(); _device = CaptureDeviceList.Instance.Single(d => d.Name == deviceName); _device.Open(DeviceMode.Promiscuous, (int)TimeSpan.FromSeconds(1).TotalMilliseconds); foreach (var udpPort in _udpPorts) { IPortListener portListener = new PortListener(_device, udpPort, ChannelProtocol.UDP); _udps.Add(portListener); portListener.DataCaptured += Udp_OnData; portListener.Connect(); } _device.StartCapture(); EventsSource = new EventsSource(IncomeLowEventsSource, BuffRepository, Avatar); Connected?.Invoke(); }
public void Connect(string deviceName) { var detector = new PortDetector(); var channels = detector.GetChannels("Tera"); _device = CaptureDeviceList.Instance.Single(d => d.Name == deviceName); _device.Open(DeviceMode.Promiscuous, (int)TimeSpan.FromSeconds(1).TotalMilliseconds); foreach (var channel in channels) { IPortListener listener = new PortListener(_device, channel.Port, channel.Protocol); _listeners.Add(listener); listener.DataCaptured += OnDataCaptured; listener.Connect(); } _device.StartCapture(); Connected?.Invoke(); }