public static void Send(this JT808TcpClient client, JT808Package package, int minBufferSize = 4096) { package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo; JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize); client.Send(request); }
public async ValueTask <bool> SendAsync(JT808ClientRequest message) { if (disposed) { return(false); } if (IsOpen && socketState) { if (message.Package != null) { try { var sendData = JT808Serializer.Serialize(message.Package, DeviceConfig.Version, minBufferSize: message.MinBufferSize); await clientSocket.SendAsync(sendData, SocketFlags.None); SendAtomicCounterService.MsgSuccessIncrement(); WriteableTimeout = DateTime.UtcNow.AddSeconds(DeviceConfig.Heartbeat); return(true); } catch (System.Net.Sockets.SocketException ex) { socketState = false; Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]"); return(false); } catch (System.Exception ex) { Logger.LogError(ex.Message); return(false); } } else if (message.HexData != null) { try { await clientSocket.SendAsync(message.HexData, SocketFlags.None); SendAtomicCounterService.MsgSuccessIncrement(); WriteableTimeout = DateTime.UtcNow.AddSeconds(DeviceConfig.Heartbeat); return(true); } catch (System.Net.Sockets.SocketException ex) { socketState = false; Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]"); return(false); } catch (System.Exception ex) { Logger.LogError(ex.Message); return(false); } } } return(false); }
public static void Send(this JT808TcpClient client, JT808Header header, JT808Bodies bodies, int minBufferSize = 1024) { JT808Package package = new JT808Package(); package.Header = header; package.Bodies = bodies; package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo; package.Header.MsgNum = client.DeviceConfig.MsgSNDistributed.Increment(); JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize); client.Send(request); }
public async ValueTask SendAsync(JT808ClientRequest message) { if (disposed) { return; } if (IsOpen && socketState) { if (message.Package != null) { try { var sendData = JT808Serializer.Serialize(message.Package, minBufferSize: message.MinBufferSize); //clientSocket.Send(sendData); await clientSocket.SendAsync(sendData, SocketFlags.None); SendAtomicCounterService.MsgSuccessIncrement(); } catch (System.Net.Sockets.SocketException ex) { socketState = false; Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]"); } catch (System.Exception ex) { Logger.LogError(ex.Message); } } else if (message.HexData != null) { try { clientSocket.Send(message.HexData); SendAtomicCounterService.MsgSuccessIncrement(); } catch (System.Net.Sockets.SocketException ex) { socketState = false; Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]"); } catch (System.Exception ex) { Logger.LogError(ex.Message); } } } }
public void Send(JT808ClientRequest request) { if (disposed) { return; } if (clientChannel == null) { throw new NullReferenceException("Channel is empty."); } if (request == null) { throw new ArgumentNullException("JT808ClientRequest Parameter is empty."); } if (clientChannel.Active && clientChannel.Open) { clientChannel.WriteAndFlushAsync(request); } }
public static async ValueTask SendAsync(this JT808TcpClient client, JT808Package package, int minBufferSize = 4096) { package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo; JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize); await client.SendAsync(request); }