Betzalel.SimpleMulticastAnalyzer.Net.Protocols.UdpNetworkProtocol.UdpNetworkProtocol C# (CSharp) Method

UdpNetworkProtocol() public method

public UdpNetworkProtocol ( Log log, Statistics statistics, IPEndPoint destinationEndPoint, UdpNetworkProtocolType udpNetworkProtocolType, int packetDataSize, bool verifyOrder ) : System
log Log
statistics Statistics
destinationEndPoint System.Net.IPEndPoint
udpNetworkProtocolType UdpNetworkProtocolType
packetDataSize int
verifyOrder bool
return System
        public UdpNetworkProtocol(
            Log log,
            Statistics statistics,
            IPEndPoint destinationEndPoint,
            UdpNetworkProtocolType udpNetworkProtocolType,
            int packetDataSize,
            bool verifyOrder)
        {
            _log = log;
              _statistics = statistics;
              _packetDataSize = packetDataSize;
              _verifyOrder = verifyOrder;

              if (verifyOrder && _packetDataSize < PacketNumberTypeLength)
            throw new ArgumentOutOfRangeException(
              "packetDataSize",
              packetDataSize,
              "Order verification require packet size bigger than " + PacketNumberTypeLength + ".");

              _sendBuffer = Enumerable.Repeat<byte>(0xFE, _packetDataSize).ToArray();
              _listenCancelToken = new CancellationTokenSource();

              DestinationEndPoint = destinationEndPoint;

              SocketType socketType;
              ProtocolType protocolType;

              switch (udpNetworkProtocolType)
              {
            case UdpNetworkProtocolType.Udp:
              socketType = SocketType.Dgram;
              protocolType = ProtocolType.Udp;
              break;
            case UdpNetworkProtocolType.Pgm:
              socketType = SocketType.Rdm;
              protocolType = (ProtocolType)113;
              break;
            default:
              throw new ArgumentOutOfRangeException("udpNetworkProtocolType");
              }

              _socket = new Socket(AddressFamily.InterNetwork, socketType, protocolType);
        }