private static void handleIncomingData(BinaryReader br, IPEndPoint peerAddress) { var data = new Data(); data.Decode(br); Console.WriteLine("DATA Size: {0} Chunk: {1}", data.DataBytes.Length, data.BinValue); var haveMessage = new Have(); haveMessage.DestChannelId = _sendingChannel; haveMessage.BinValue = data.BinValue; var ackMessage = new Ack(); ackMessage.BinValue = data.BinValue; var requestMessage = new Request(); requestMessage.BinValue = data.BinValue + 40; var returnBytes = new List <byte>(); returnBytes.AddRange(haveMessage.ToByteArray()); returnBytes.AddRange(requestMessage.ToByteArray()); _client.Send(returnBytes.ToArray(), returnBytes.Count, peerAddress); }