本文整理汇总了C#中IPacket.GetBytes方法的典型用法代码示例。如果您正苦于以下问题:C# IPacket.GetBytes方法的具体用法?C# IPacket.GetBytes怎么用?C# IPacket.GetBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPacket
的用法示例。
在下文中一共展示了IPacket.GetBytes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendMessage
public IAckPacket SendMessage(IPacket packet)
{
var packetBytes = packet.GetBytes();
var responseBytes = _crazyradioDriver.SendData(packetBytes);
return new AckPacket(responseBytes);
}
示例2: Respond
/// <summary>
/// Writes a given packet to the client
/// </summary>
/// <param name="packet">IPacket packet</param>
/// <param name="connection"></param>
/// <returns>True on success, false on failure</returns>
public bool Respond(IPacket packet, NetworkStream connection)
{
try
{
var bytes = packet.GetBytes();
connection.Write(bytes, 0, bytes.Length);
}
catch (Exception e)
{
UDProxy.DebugException(e);
return false;
}
return true;
}
示例3: SendToDestination
private void SendToDestination(IPacket packet)
{
int periodLeft = PeriodLength - (Environment.TickCount - _periodStart);
if (periodLeft <= 0)
{
Logger.Info("Resetting period, no more time left in period");
ResetPeriod();
periodLeft = PeriodLength;
}
if (_bytesThisPeriod > _transportForm.Bandwidth * 1024)
{
// wait out the period
Logger.Info("Blocking, already sent " + _bytesThisPeriod + " this period, will wait " + periodLeft + "ms");
Thread.Sleep(periodLeft);
ResetPeriod();
periodLeft = PeriodLength;
}
_bytesThisPeriod += packet.GetBytes().Length;
// dump it onto the physical layer of the other proxy
proxy.PhysicalLayer.Enqueue(new PhysicalPacketHolder(packet));
Logger.Info("Sent packet through physical layer, " + _bytesThisPeriod + " so far this period, " + periodLeft + "ms left.");
lock (proxy.PhysicalLayerLock)
Monitor.Pulse(proxy.PhysicalLayerLock);
}