private GeneralSocket CreateSocket(AddressFamily sockType, string address, int port) { GeneralSocket socket = null; switch (sockType) { case AddressFamily.Unix: socket = new UnixSocket(address); break; case AddressFamily.InterNetwork: IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(address), port); socket = new TcpSocket(localEP); break; } return(socket); }
public int Listen() { try { Logger.Write(LogLevel.Debug, "Listening on port: {0}", config.Port); Logger.Write(LogLevel.Debug, "Listening on address: {0}", config.Address); this.listener = CreateSocket(config.Family, config.Address, config.Port); listener.Listen(500); listener.BeginAccept(accept, listener); } catch (Exception ex) { Logger.Write(LogLevel.Error, "{0}", ex); return(1); //false; } Logger.Write(LogLevel.Debug, "Application started"); return(0); //true; }
public void acceptCallback(IAsyncResult ar) { GeneralSocket listener = (GeneralSocket)ar.AsyncState; Socket client = null; try { client = listener.EndAccept(ar); } catch (ObjectDisposedException) { //socket has been closed in Shutdown method } if (client != null) { listener.BeginAccept(accept, listener); // Additional code to read data goes here. FastCgiNetworkConnector connector = new FastCgiNetworkConnector(client, this); connector.Disconnected += OnDisconnect; connector.Receive(); } }