Beispiel #1
0
        /// <summary>
        /// Disconnect from the remote host.
        /// </summary>
        /// <param name="reason">The given reason for the disconnection</param>
        public void Disconnect(string reason)
        {
            if (!IsConnected || _closing)
            {
                return;
            }

            _closing = true;

            // -- Wait for everything in send buffer to clear??
            while (_sending)
            {
                Thread.Sleep(1);
            }

            _sendBuffer = new ConcurrentQueue <byte[]>(); // -- Reset everything
            _readBuffer = new byte[ReadSize];

            _baseStream.Close(); // -- Close our the stream and socket (Forces all async operations to fail over as well)
            _baseSocket.Close();

            IsConnected = false; // -- Flag any users that we are no longer connected.

            // -- Call the disconnected event.
            if (Disconnected != null)
            {
                Disconnected.SafeRaise(new SocketDisconnectedArgs(this, reason));
            }

            _closing = false; // -- Done closing our connection
        }
Beispiel #2
0
        private void ConnectComplete(IAsyncResult ar)
        {
            try {
                _baseSocket.EndConnect(ar);                                          // -- End the connection event..
                IsConnected = true;                                                  // -- Flag the system as connected
                _baseStream = _baseSocket.GetStream();
                _baseStream.BeginRead(_readBuffer, 0, ReadSize, ReadComplete, null); // -- Begin reading data

                if (Connected != null)
                {
                    Connected.SafeRaise(new SocketConnectedArgs(this));
                }
                // Task.Run(() => Connected(new SocketConnectedArgs(this))); // -- Trigger the socket connected event.
            }
            catch (Exception e)
            {
                if (Disconnected != null)
                {
                    Disconnected.SafeRaise(new SocketDisconnectedArgs(this, "Unable Connect to server"));
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Disconnect from the remote host.
        /// </summary>
        /// <param name="reason">The given reason for the disconnection</param>
        public void Disconnect(string reason)
        {
            if (!IsConnected || _closing)
            {
                return;
            }

            _closing = true;
            var counter = 2000;

            //// -- Wait for everything in send buffer to clear??
            while (_sending)
            {
                //Console.WriteLin("[RAW SOCKET] - WAITING FOR SEND");
                counter -= 1;

                if (counter <= 0)
                {
                    break;
                }

                Thread.Sleep(1);
            }

            _sendBuffer = new ConcurrentQueue <byte[]>(); // -- Reset everything
            _readBuffer = new byte[ReadSize];

            _baseStream.Close(); // -- Close our the stream and socket (Forces all async operations to fail over as well)
            _baseSocket.Close();

            IsConnected = false; // -- Flag any users that we are no longer connected.

            // -- Call the disconnected event.
            Disconnected?.SafeRaise(new SocketDisconnectedArgs(this, reason));

            _closing = false; // -- Done closing our connection
        }
Beispiel #4
0
 private void OnDisconnect(NetworkMessage msg)
 {
     Disconnected.SafeRaise(msg.conn.connectionId);
 }
Beispiel #5
0
 private void OnDisconnect(NetworkMessage msg)
 {
     Disconnected.SafeRaise();
 }