Brunet.Transport.UdpEdgeListener.SendControlPacket C# (CSharp) Метод

SendControlPacket() защищенный Метод

protected SendControlPacket ( EndPoint end, int remoteid, int localid, ControlCode c, object state ) : void
end System.Net.EndPoint
remoteid int
localid int
c ControlCode
state object
Результат void
    protected void SendControlPacket(EndPoint end, int remoteid, int localid,
                                     ControlCode c, object state) 
    {
      using(MemoryStream ms = new MemoryStream()) {
        NumberSerializer.WriteInt((int)c, ms);
        if( c == ControlCode.EdgeDataAnnounce ) {
          UdpEdge e = (UdpEdge)_id_ht[localid];
          if( (e != null) && (e.RemoteID == remoteid) ) {
            Hashtable t = new Hashtable();
            t["RemoteTA"] = e.RemoteTA.ToString();
            t["LocalTA"] = e.LocalTA.ToString();
            AdrConverter.Serialize(t, ms);
          }
          else {
            if(ProtocolLog.UdpEdge.Enabled)
              ProtocolLog.Write(ProtocolLog.UdpEdge, String.Format(
                "Problem sending EdgeData: EndPoint: {0}, remoteid: {1}, " +
                "localid: {2}, Edge: {3}", end, remoteid, localid, e));
          }
        }

        _send_queue.Enqueue(new UdpMessage(localid, ~remoteid, MemBlock.Reference(ms.ToArray()), end));
        if(ProtocolLog.UdpEdge.Enabled) {
          ProtocolLog.Write(ProtocolLog.UdpEdge, String.Format(
            "Sending control {1} to: {0}", end, c));
        }
      }
    }
    /**