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)); } }
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); } }
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)); } }