コード例 #1
0
        public SocketConnection(int id, Socket socket, SocketListener listener, bool debug = false)
            : base(id, socket, debug)
        {
            _disposed = false;
            _decoder  = new FixHeaderDecoder(this, debug);
            _listener = listener;

            _pooledReadEventArgs            = _listener.SocketAsyncReadEventArgsPool.Get() as PooledSocketAsyncEventArgs;
            _pooledReadEventArgs.Completed += IO_Completed;

            _pooledSendEventArgs            = _listener.SocketAsyncSendEventArgsPool.Get() as PooledSocketAsyncEventArgs;
            _pooledSendEventArgs.Completed += IO_Completed;
        }
コード例 #2
0
        public SocketClientConnection(int id, string address, int port, int bufferSize, bool debug = false)
            : base(id, new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp), debug)
        {
            _id             = id;
            _debug          = debug;
            _disposed       = false;
            _connected      = false;
            _bufferSize     = bufferSize;
            _connectTimeout = 5 * 1000;
            _decoder        = new FixHeaderDecoder(this, debug);
            _remoteEndPoint = new IPEndPoint(IPAddress.Parse(address), port);

            _readEventArgs            = new SocketAsyncEventArgs();
            _readEventArgs.Completed += IO_Completed;
            _readEventArgs.SetBuffer(ArrayPool <byte> .Shared.Rent(_bufferSize), 0, _bufferSize);

            _sendEventArgs            = new SocketAsyncEventArgs();
            _sendEventArgs.Completed += IO_Completed;
            _sendEventArgs.SetBuffer(ArrayPool <byte> .Shared.Rent(_bufferSize), 0, _bufferSize);
        }