protected override void update() { while (true) { if (!active) { return; } EzyPacket packet = packetQueue.take(); if (packet == null) { return; } int writtenBytes = writeToSocket(packet); packet.release(); if (writtenBytes <= 0) { return; } networkStatistics.getSocketStats().getNetworkStats().addWrittenPackets(1); networkStatistics.getSocketStats().getNetworkStats().addWrittenBytes(writtenBytes); } }
protected override int writeToSocket(EzyPacket packet) { try { byte[] bytes = (byte[])packet.getData(); int bytesToWrite = bytes.Length; int writtenByes = datagramChannel.Send(bytes, bytesToWrite); return(writtenByes); } catch (Exception e) { logger.warn("I/O error at socket-writer", e); return(-1); } finally { packet.release(); } }