public UdpTransport(IPacketContract <T> packetContract, ushort port)
        {
            _packetContract = packetContract;
            _port           = port;
            _socket         = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            _receiveEvent            = new SocketAsyncEventArgs();
            _receiveEvent.Completed += ReceiveCompleted;
            _receiveEvent.SetBuffer(new byte[BUFFER_SIZE], 0, BUFFER_SIZE);

            _sendEvent            = new SocketAsyncEventArgs();
            _sendEvent.Completed += SendCompleted;
            _sendEvent.SetBuffer(new byte[BUFFER_SIZE], 0, BUFFER_SIZE);

            _sendQueue = new ConcurrentQueue <PacketContainer <T> >();

            _disposed = 0;
            _sending  = 0;
        }
Example #2
0
        public TcpTransport(IPacketContract <T> packetContract, IPEndPoint address)
        {
            _packetContract = packetContract;
            _address        = address;

            _connectEvent                = new SocketAsyncEventArgs();
            _connectEvent.Completed     += ConnectCompleted;
            _connectEvent.RemoteEndPoint = address;

            _receiveEvent            = new SocketAsyncEventArgs();
            _receiveEvent.Completed += ReceiveCompleted;
            _receiveEvent.SetBuffer(new byte[INITIAL_BUFFER_SIZE], 0, INITIAL_BUFFER_SIZE);

            _sendEvent            = new SocketAsyncEventArgs();
            _sendEvent.Completed += SendCompleted;
            _sendEvent.SetBuffer(new byte[INITIAL_BUFFER_SIZE], 0, INITIAL_BUFFER_SIZE);

            _sendQueue = new ConcurrentQueue <T>();

            _disposed = 0;
            _sending  = 0;
        }