private void HandleKeyInstruct(KeyInstructMessage msg) { if (!msg.Instructions.ContainsKey(_config.ID)) { return; } var instructionSet = msg.Instructions[_config.ID]; foreach (var instruction in instructionSet) { int count = instruction.KeyCount; var keys = _processor.Get(count).ToList(); var srcAddress = IPAddress.Parse(_config.TCPServerAddress); var srcPort = Int32.Parse(_config.TCPServerPort); var dstAddress = IPAddress.Parse(instruction.Address); var dstPort = Int32.Parse(instruction.Port); using (var tcpSocket = new TCPSocket( srcAddress, srcPort, dstAddress, dstPort)) { var distMsg = new KeyDistributeMessage() { SourceID = _config.ID, DestinationID = Constants.NULL_DESTINATION, Keys = keys }; SendMessage(distMsg, tcpSocket); } } }
private void HandleKeyInstruct(KeyInstructMessage msg) { var srcAddress = IPAddress.Parse(_config.TCPServerAddress); var srcPort = Int32.Parse(_config.TCPServerPort); var instructionSet = msg.Instructions[_config.ID]; foreach (var instruction in instructionSet) { var dstAddress = IPAddress.Parse(instruction.Address); var dstPort = Int32.Parse(instruction.Port); using (var tcpSocket = new TCPSocket( srcAddress, srcPort, dstAddress, dstPort)) { var keys = _keys.Take(instruction.KeyCount).ToList(); _keys.RemoveRange(0, keys.Count); var keyDistribute = new KeyDistributeMessage() { SourceID = _config.ID, DestinationID = Constants.NULL_DESTINATION, Keys = keys }; SendMessage(keyDistribute, tcpSocket); } } _t.Stop(); _leaveFinished = true; }