public bool Send(Packet.Packet packet) { try { if (!IsRunning) { throw new ServiceException($"{serviceName} is not running."); } if (_client == null || !_client.Connected) { throw new ServiceException($"{serviceName} is not in connection."); } var packetData = packet.Data; var packetCode = _packetForwardService.GetPacketCode(typeof(T)); var writer = new _NetWriter(packetCode, packetData); writer.WriteNextSubPacket(new BinaryWriter(_client.GetStream())); if (showLog) { ULogger.Info($"<{serviceName}> {packet.GetType ().FullName} was sent."); } return(true); } catch (Exception e) { ULogger.Warning($"<{serviceName}> Send {packet.GetType ().FullName} failed.", e); return(false); } }
public bool Send(Packet.Packet packet) { try { if (!IsRunning) { throw new ServiceException($"{serviceName} is not running."); } var remoteEp = new IPEndPoint(IPAddress.Parse(remoteIP), remotePort); var packetData = packet.Data; var packetCode = _packetForwardService.GetPacketCode(packet.GetType()); var writer = new _NetWriter(packetCode, packetData, _seq); while (true) { try { _buffStream.Seek(0, SeekOrigin.Begin); var bytesWritten = writer.WriteNextSubPacket(new BinaryWriter(_buffStream)); _client.Send(_buffStream.GetBuffer(), (int)bytesWritten, remoteEp); } catch (EndOfStreamException) { break; } } if (showLog) { ULogger.Info($"<{serviceName}> {packet.GetType ().FullName} was sent."); } return(true); } catch (Exception e) { ULogger.Warning($"<{serviceName}> Send {packet.GetType ().FullName} failed.", e); return(false); } }