Ejemplo n.º 1
0
        /// <summary>
        /// Sends the specified packet using unicast to a specific DJ Tap device.
        /// </summary>
        /// <param name="packet">The packet to send on the network.</param>
        /// <param name="address">The address of the device to send the packet to.</param>
        protected void Unicast(TCNetPacket packet, TCNetEndPoint address)
        {
            MemoryStream      data          = new MemoryStream();
            TCNetBinaryWriter writer        = new TCNetBinaryWriter(data);
            IPEndPoint        localEndpoint = (IPEndPoint)nodeSocket.LocalEndPoint;

            TCNetHeader header = packet as TCNetHeader;

            if (header != null)
            {
                header.NodeID         = NodeId;
                header.NodeType       = Role;
                header.NodeName       = NodeName;
                header.SequenceNumber = NextSequenceNumber();
                header.Timestamp      = DateTime.UtcNow.TimeOfDay;

                TraceEventType traceLevel = TraceEventType.Information;
                DataTypes      dataType   = DataTypes.None;

                TCNetDataHeader dataHeader = header as TCNetDataHeader;
                if (dataHeader != null)
                {
                    dataType = dataHeader.DataType;
                }

                tcNetTrace.TraceEvent(traceLevel, (int)header.MessageType, $"{header.NodeName}: {header.GetType().Name} {(dataType != DataTypes.None ? dataType.ToString() : string.Empty)}");
            }

            packet.WriteData(writer);
            try
            {
                unicastTXSocket.SendTo(data.ToArray(), new IPEndPoint(address.Address, address.Port));
            }
            catch (SocketException ex)
            {
                OnUnhandledException(new TCNetSocketException(this, "Socket error unicast TCNet integration.", ex));
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Unicasts a TCNet packet to the specified device.
 /// </summary>
 /// <param name="endPoint">The IP address and port to send the packet to.</param>
 /// <param name="packet">The packet to be unicast.</param>
 public void Send(TCNetEndPoint endPoint, TCNetPacket packet)
 {
     Unicast(packet, endPoint);
 }
Ejemplo n.º 3
0
 public NewPacketEventArgs(TCNetEndPoint source, TPacketType packet)
 {
     Source = source;
     Packet = packet;
 }