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); }
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); }