public void sendMessage(IMessage msg, int msgID) { int dataLen = UDPServer.UDP_MAX_PACKET_SIZE - UDPMessage.getHeaderSize(); byte[] buffer = msg.toByteArray(); for (int i = 0; i < buffer.Length; i = i + dataLen) { UDPMessage udpMsg = null; if (i + dataLen < buffer.Length) { udpMsg = new UDPMessage(dataLen); } else { udpMsg = new UDPMessage(buffer.Length - i); } Buffer.BlockCopy(buffer, i, udpMsg.Data, 0, udpMsg.Data.Length); udpMsg.MessageID = msgID; udpMsg.MessageOffset = i; udpMsg.MessageSize = buffer.Length; sendData(udpMsg); } }
public override void sendMsg(IMessage msg) { if (clientCount == 1) { udpClients[0].sendMessage(msg, msgID); } else if (clientCount > 1) { for (int i = 0; i < clientCount; i++) { if (deliveryThreads[i].MsgBox == null) deliveryThreads[i].MsgBox = new GenericMessage().fromByteArray(msg.toByteArray()); } } }