예제 #1
0
        void OnClientConnect(IAsyncResult _Ar)
        {
            try
            {
                Wait.Set();

                Socket _Listener = (Socket)_Ar.AsyncState;
                Socket _Handler  = _Listener.EndAccept(_Ar);

                Console.WriteLine("Hello from " + _Handler.RemoteEndPoint + ".");

                ResourcesManager.Add(_Handler);

                new Reader(_Handler, this.ProcessPacket);

                _Listener.BeginAccept(this.AcceptCallback, _Listener);
            }
            catch (Exception e)
            {
                Debug.Write(@"Exception when accepting incoming connection: " + e);
            }
            try
            {
                m_vServerSocket.BeginAccept(new AsyncCallback(OnClientConnect), m_vServerSocket);
            }
            catch (Exception e)
            {
                Debug.Write(@"Exception when starting new accept process: " + e);
            }
        }
 public IActionResult Add([FromBody] DTOResource dtoResource)
 {
     try
     {
         int newResourceId = resourceManager.Add(dtoResource);
         _logger.LogInformation("Added new Resource", newResourceId);
         return(Ok(newResourceId));
     }
     catch (Exception ex)
     {
         _logger.LogError("Error during Resource/Add", ex.Message);
         resourceManager.Dispose();
         return(StatusCode(500, ex.Message));
     }
 }
예제 #3
0
파일: Server.cs 프로젝트: skwbr/UCS-GUI
        private void ProcessAccept(SocketAsyncEventArgs _AsyncEvent)
        {
            Socket _Socket = _AsyncEvent.AcceptSocket;

            if (_Socket.Connected)
            {
                try
                {
                    SocketAsyncEventArgs _ReadEvent = this._ReadWritePool.Pop();

                    if (_ReadEvent != null)
                    {
                        _ReadEvent.UserToken = new Token(_Socket);

                        Interlocked.Increment(ref _ConnectedSockets);
                        ResourcesManager.Add(_Socket);

                        if (!_Socket.ReceiveAsync(_ReadEvent))
                        {
                            this.ProcessReceive(_ReadEvent);
                        }
                    }
                    else
                    {
                        Console.WriteLine("There are no more available sockets to allocate.");
                    }
                }
                catch (SocketException ex)
                {
                    Token _Token = _AsyncEvent.UserToken as Token;
                    Console.WriteLine("Error when processing data received from " + _Token._Connection.RemoteEndPoint
                                      + ":\r\n" + ex);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }

                this.StartAccept(_AsyncEvent);
            }
        }
예제 #4
0
        private void AcceptCallback(IAsyncResult _Ar)
        {
            try
            {
                Wait.Set();

                Socket _Listener = (Socket)_Ar.AsyncState;
                Socket _Handler  = _Listener.EndAccept(_Ar);

                Debug.Write("Hello from " + _Handler.RemoteEndPoint + ".");

                ResourcesManager.Add(_Handler);

                new Reader(_Handler, this.ProcessPacket);

                _Listener.BeginAccept(this.AcceptCallback, _Listener);
            }
            catch (Exception ex)
            {
                Debug.Write(Debug.FlattenException(ex));
            }
        }