本文整理汇总了C#中Mina.Core.Buffer.IoBuffer.GetHexDump方法的典型用法代码示例。如果您正苦于以下问题:C# IoBuffer.GetHexDump方法的具体用法?C# IoBuffer.GetHexDump怎么用?C# IoBuffer.GetHexDump使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mina.Core.Buffer.IoBuffer
的用法示例。
在下文中一共展示了IoBuffer.GetHexDump方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ManipulateIoBuffer
private void ManipulateIoBuffer(IoSession session, IoBuffer buffer)
{
if ((buffer.Remaining > 0) && (_removeByteProbability > _rng.Next(1000)))
{
if (log.IsInfoEnabled)
log.Info(buffer.GetHexDump());
// where to remove bytes ?
int pos = _rng.Next(buffer.Remaining);
// how many byte to remove ?
int count = _rng.Next(buffer.Remaining - pos) + 1;
if (count == buffer.Remaining)
count = buffer.Remaining - 1;
IoBuffer newBuff = IoBuffer.Allocate(buffer.Remaining - count);
for (int i = 0; i < pos; i++)
newBuff.Put(buffer.Get());
buffer.Skip(count); // hole
while (newBuff.Remaining > 0)
newBuff.Put(buffer.Get());
newBuff.Flip();
// copy the new buffer in the old one
buffer.Rewind();
buffer.Put(newBuff);
buffer.Flip();
if (log.IsInfoEnabled)
{
log.Info("Removed " + count + " bytes at position " + pos + ".");
log.Info(buffer.GetHexDump());
}
}
if ((buffer.Remaining > 0) && (_changeByteProbability > _rng.Next(1000)))
{
if (log.IsInfoEnabled)
log.Info(buffer.GetHexDump());
// how many byte to change ?
int count = _rng.Next(buffer.Remaining - 1) + 1;
byte[] values = new byte[count];
_rng.NextBytes(values);
for (int i = 0; i < values.Length; i++)
{
int pos = _rng.Next(buffer.Remaining);
buffer.Put(pos, values[i]);
}
if (log.IsInfoEnabled)
{
log.Info("Modified " + count + " bytes.");
log.Info(buffer.GetHexDump());
}
}
}
示例2: InsertBytesToNewIoBuffer
private IoBuffer InsertBytesToNewIoBuffer(IoSession session, IoBuffer buffer)
{
if (_insertByteProbability > _rng.Next(1000))
{
if (log.IsInfoEnabled)
log.Info(buffer.GetHexDump());
// where to insert bytes ?
int pos = _rng.Next(buffer.Remaining) - 1;
// how many byte to insert ?
int count = _rng.Next(_maxInsertByte - 1) + 1;
IoBuffer newBuff = IoBuffer.Allocate(buffer.Remaining + count);
for (int i = 0; i < pos; i++)
newBuff.Put(buffer.Get());
for (int i = 0; i < count; i++)
{
newBuff.Put((byte)(_rng.Next(256)));
}
while (buffer.Remaining > 0)
{
newBuff.Put(buffer.Get());
}
newBuff.Flip();
if (log.IsInfoEnabled)
{
log.Info("Inserted " + count + " bytes.");
log.Info(newBuff.GetHexDump());
}
return newBuff;
}
return null;
}