private async void Enter(object sender, RoutedEventArgs e) { try { _client = new UdpClient(UdpHelper.GetFreePort()); _client.JoinMulticastGroup(IPAddress.Parse(ConectInfo.GroupAddr)); _isConnected = _isSendMessage = true; Task.Run(ReceiveData).Start(); } catch { } _userName = TextBoxUsername.Text; SendMessage(_userName + " joined."); GridMain.Visibility = Visibility.Visible; GridRegister.Visibility = Visibility.Hidden; GridChat.Visibility = Visibility.Visible; for (var i = 0; i <= 150; i += 5) { GridChat.Width = i; await Task.Delay(20); } }
public void Start(int port) { Debug.Log($"Starting UDP server on port {port}"); var udpHelper = new UdpHelper(); udpHelper.client = new UdpClient(port); udpHelper.endPoint = new IPEndPoint(IPAddress.Any, port); udpHelper.client.BeginReceive(UdpReceived, udpHelper); }
/// <summary> /// 页面加载时的业务处理 /// </summary> protected override void OnHandleViewLoaded() { //读取配置文件 ReadConfig(); if (!string.IsNullOrWhiteSpace(ipAddress) && !string.IsNullOrWhiteSpace(port)) { //初始化udp socketHelper = new UdpHelper(ipAddress, int.Parse(port)); } }
private void Window_MouseDown(object sender, MouseButtonEventArgs e) { var pt = e.GetPosition(img); var x = (pt.X / img.ActualWidth); var y = (pt.Y / img.ActualHeight); var bytes = ConcatByteArrays( BitConverter.GetBytes(m_port), BitConverter.GetBytes(x), BitConverter.GetBytes(y)); UdpHelper.Send("192.168.0.2", 7777, bytes); }
private void Canvas_MouseMove(object sender, MouseEventArgs e) { LabelX.Content = "X = " + e.GetPosition(CanvasMain).X; LabelY.Content = "Y = " + e.GetPosition(CanvasMain).Y; var point = e.GetPosition(CanvasMain); if (_isDraw && !_isMove && (e.LeftButton == MouseButtonState.Pressed)) { _x2 = point.X; _y2 = point.Y; ChangingObjects(); PrintFigure(_figures[_tag]); if (_isConnected) { UdpHelper.SendFigure(Command.Point, _figures[_tag], _client, _isOneFigure); } _figures.Clear(); } else if (_isMove && e.LeftButton == MouseButtonState.Pressed) { _figure.FirstPoint.X = _oldPointFirst.X + (point.X - _x1); _figure.SecondPoint.X = _oldPointSecond.X + (point.X - _x1); _figure.FirstPoint.Y = _oldPointFirst.Y + (point.Y - _y1); _figure.SecondPoint.Y = _oldPointSecond.Y + (point.Y - _y1); if (_isConnected) { UdpHelper.SendFigure(Command.Move, _figure, _client, _isOneFigure); } if (_isOneFigure) { CanvasMain.Children.Remove(_chousenShape); } else { CanvasMain.Children.RemoveAt(CanvasMain.Children.Count - 1); } _isOneFigure = false; _figure.SetColor(); _figure.Draw(CanvasMain); _figure.Tag = CanvasMain.Children.IndexOf(CanvasMain.Children[CanvasMain.Children.Count - 1]); _shape.Figures.Add(_figure); SetEventOnLastFigure(); } }
private void InitObject() { _config = Config.Instance(); _udpHelper = new UdpHelper(); _deviceControlElement = DeviceControlElement.GetInstance(); _deviceControlElement.AddJoystick(_config.Default.DefaultControlElement.Rus.Guid); _deviceControlElement.AddJoystick(_config.Default.DefaultControlElement.Rud.Guid); _dynamicModelToBmpi = new DynamicModelToBmpi(); _aircraftPosition = new AircraftPosition(); _dynamicModelToVaps = new DynamicModelToVaps(); _modelState = new ModelState(); _channelRadar = new ChannelRadar(); _channelThermalEffect = new ChannelThermalEffect(); _channelTvHeadEffect = new ChannelTvHeadEffect(); _ethernetControlElement = new EthernetControlElement(); _cLSEControl = new CLSEControl(); _cLSEState = new CLSEState(); _parametersOfControl = new ParametersOfControl(); _lptp = new Lptp(); _commandPue = new CommandPue(); if (_typeModel == 0) { _controlElement = new ControlElementKa52(); _dynamicModel = new ModelKa52(); } _startPosition = new StartPosition(); _landing = new Landing(); _route = new Route(); uint version = 0; uint release = 0; uint releaseDay = 0; uint releaseMonth = 0; uint releaseYear = 0; IntPtr pversion = GetIntPtr(version); IntPtr prelease = GetIntPtr(release); IntPtr preleaseDay = GetIntPtr(releaseDay); IntPtr preleaseMonth = GetIntPtr(releaseMonth); IntPtr preleaseYear = GetIntPtr(releaseYear); GetDllVersion(pversion, prelease, preleaseDay, preleaseMonth, preleaseYear); version = (uint)Marshal.ReadInt32(pversion); release = (uint)Marshal.ReadInt32(prelease); releaseDay = (uint)Marshal.ReadInt32(preleaseDay); releaseMonth = (uint)Marshal.ReadInt32(preleaseMonth); releaseYear = (uint)Marshal.ReadInt32(preleaseYear); Init("ConfigBrunner.xml"); }
private void OnUdpReceived(byte[] buffer, int size) { lock (this) { if (CurrentState == State.Disconnected) { return; } _receiveBuffer.SetContents(_crypto.Decrypt(buffer, 0, size)); if (UdpHelper.PrefixCheck(_receiveBuffer, out ushort packetTimestamp)) { _handler.OnUdpReceived(_receiveBuffer, packetTimestamp); } } }
/// <summary> /// Sends the specified payload over UDP. /// </summary> /// <param name="payloadWriter">The action which writes the payload to a buffer.</param> public void SendUdp(Action <BitBuffer> payloadWriter) { lock (this) { if (CurrentState == State.Disconnected) { return; } using (_sendBuffer) { UdpHelper.WritePrefix(_sendBuffer, ConnectionStartTimestamp, payloadWriter); byte[] encrypted = _crypto.Encrypt(_sendBuffer.Array, 0, _sendBuffer.Size); _udp.Send(encrypted, 0, encrypted.Length); } } }
/// <summary> /// Sends the specified payload over UDP to the specified client. /// </summary> /// <param name="recipient">The client in question.</param> /// <param name="payloadWriter">The action which writes the payload to a buffer.</param> public void SendUdp(IDoubleServerClient recipient, Action <BitBuffer> payloadWriter) { lock (this) { if (_closed) { return; } DoubleServerClient client = (DoubleServerClient)recipient; using (_sendBuffer) { UdpHelper.WritePrefix(_sendBuffer, client.ConnectionStartTimestamp, payloadWriter); byte[] encrypted = _crypto.Encrypt(client.EncryptionKey, _sendBuffer.Array, 0, _sendBuffer.Size); _udp.Send(client.UdpEndPoint, encrypted, 0, encrypted.Length); } } }
private void Canvas_MouseDown(object sender, MouseEventArgs e) { var point = e.GetPosition(CanvasMain); _x1 = point.X; _y1 = point.Y; _isDraw = true; _isOneFigure = _isMove; if (_isConnected) { if (!_isMove) { UdpHelper.SendFigure(Command.BeginPaint, new Line(), _client, _isOneFigure); } } }
public Bitmap RenderToRemote(Bitmap desktop, System.Windows.Forms.Screen screen) { render_counter++; var cropped = Window.RenderFromDesktop(desktop, screen); if (cropped == null) { return(null); } byte[] imageBytes = ImageExtensions.ToByteArray(cropped, Quality); if (render_counter % 100 == 0) { while ((imageBytes.Length < (0.98 * max_size)) && (Quality < 100)) { Quality += 2; if (Quality > 100) { Quality = 100; } imageBytes = ImageExtensions.ToByteArray(cropped, Quality); // Trace.WriteLine("Qutlity 1"); break; } } while (imageBytes.Length > max_size) { Quality -= 1; if (Quality < 1) { Quality = 1; break; } imageBytes = ImageExtensions.ToByteArray(cropped, Quality); // Trace.WriteLine("Qutlity 2"); } UdpHelper.Send(m_address, m_port, imageBytes); return(cropped); }
private void OnReceived(object sender, SocketAsyncEventArgs eventArgs) { while (true) { if (UdpHelper.IsHarmfulError(eventArgs.SocketError)) { return; } _receiveHandler(eventArgs.Buffer, eventArgs.BytesTransferred); lock (_socket) { if (_disposed) { return; } else if (_socket.ReceiveAsync(eventArgs)) { break; } } } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { using UdpClient listener = new UdpClient(_listenerConfig.Port); UdpHelper.ConfigureSocket(listener); _logger.LogInformation($"Listening on {_listenerConfig.Port}"); while (!stoppingToken.IsCancellationRequested) { try { _logger.LogInformation("Waiting for broadcast"); var receiveResult = await listener.ReceiveAsync(); IPEndPoint remoteEP = receiveResult.RemoteEndPoint; byte[] bytes = receiveResult.Buffer; _logger.LogInformation($"Received payload from {remoteEP}"); var command = TryGetCommand(bytes); if (command == null) { await Reply(listener, remoteEP, "Cannot read payload"); } else { var response = _commandExecutorService.ExecuteCommand(command); await Reply(listener, remoteEP, response); } } catch (SocketException e) { _logger.LogError(e, "socket error"); throw e; } } }
private void OnReceived(object sender, SocketAsyncEventArgs eventArgs) { while (true) { if (UdpHelper.IsHarmfulError(eventArgs.SocketError)) { return; } _receiveHandler(eventArgs.RemoteEndPoint, eventArgs.Buffer, eventArgs.BytesTransferred); lock (_socket) { if (_disposed) { return; } eventArgs.RemoteEndPoint = new IPEndPoint(IPAddress.IPv6Any, _port); if (_socket.ReceiveFromAsync(eventArgs)) { break; } } } }
static void SendMessage(string message) { UdpHelper.SendMessage(_client, message); }