Пример #1
0
        private void Accept_Callback(IAsyncResult ar)
        {
            InitiatorContext context = (InitiatorContext)ar.AsyncState;

            try
            {
                Socket socket = context.Socket.EndAccept(ar);

                socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
                socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

                socket.NoDelay     = true;
                socket.LingerState = new LingerOption(false, 0);

                IPEndPoint remoteIp = socket.RemoteEndPoint as IPEndPoint;

                PeerConnection connection = new PeerConnection(socket, remoteIp, null);

                Connected(connection);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed to connect: " + ex.Message);

                ConnectFailed(this);
            }
            finally
            {
                PostAccept(context);
            }
        }
Пример #2
0
        private void PostAccept(InitiatorContext context)
        {
            Socket socket = new Socket(context.Endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay = true;
            socket.LingerState = new LingerOption(false, 0);

            context.Socket.BeginAccept(socket, 0, Accept_Callback, context);
        }
Пример #3
0
        private void PostAccept(InitiatorContext context)
        {
            Socket socket = new Socket(context.Endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay     = true;
            socket.LingerState = new LingerOption(false, 0);

            context.Socket.BeginAccept(socket, 0, Accept_Callback, context);
        }
Пример #4
0
        public void Connect(EndPoint endpoint)
        {
            Socket socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay     = true;
            socket.LingerState = new LingerOption(false, 0);

//

            InitiatorContext context = new InitiatorContext(socket, endpoint);

            socket.BeginConnect(endpoint, Connect_Callback, context);
        }
Пример #5
0
        public void Connect(EndPoint endpoint)
        {
            Socket socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay = true;
            socket.LingerState = new LingerOption(false, 0);

//			

            InitiatorContext context = new InitiatorContext(socket, endpoint);

            socket.BeginConnect(endpoint, Connect_Callback, context);
        }
Пример #6
0
        public void Listen(IPEndPoint endpoint)
        {
            Socket socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay     = true;
            socket.LingerState = new LingerOption(false, 0);

            InitiatorContext context = new InitiatorContext(socket, endpoint);

            socket.Bind(endpoint);
            socket.Listen(_pendingConnectionQueueDepth);

            PostAccept(context);
        }
Пример #7
0
        public void Listen(IPEndPoint endpoint)
        {
            Socket socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, _connectionTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, _receiveTimeout);

            socket.NoDelay = true;
            socket.LingerState = new LingerOption(false, 0);

            InitiatorContext context = new InitiatorContext(socket, endpoint);

            socket.Bind(endpoint);
            socket.Listen(_pendingConnectionQueueDepth);

            PostAccept(context);
        }
Пример #8
0
        private void Connect_Callback(IAsyncResult ar)
        {
            try
            {
                InitiatorContext context = (InitiatorContext)ar.AsyncState;

                context.Socket.EndConnect(ar);

                PeerConnection connection = new PeerConnection(context.Socket, context.Endpoint, null);

                Connected(connection);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed to connect: " + ex.Message);

                ConnectFailed(this);
            }
        }