Aegis.Network.Acceptor.Listen C# (CSharp) Method

Listen() public method

public Listen ( ) : void
return void
        public void Listen()
        {
            try
            {
                if (_listenSocket != null)
                    throw new AegisException(AegisResult.AcceptorIsRunning, "Acceptor is already running.");

                if (ListenIpAddress.Length == 0)
                    _listenEndPoint = new IPEndPoint(IPAddress.Any, ListenPortNo);
                else
                    _listenEndPoint = new IPEndPoint(IPAddress.Parse(ListenIpAddress), ListenPortNo);

                _listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                _listenSocket.Bind(_listenEndPoint);
                _listenSocket.Listen(100);

                if (_networkChannel.Name != "")
                    Logger.Info(LogMask.Aegis, "{0} listening on {1}, {2}", _networkChannel.Name, _listenEndPoint.Address, _listenEndPoint.Port);
                else
                    Logger.Info(LogMask.Aegis, "Listening on {0}, {1}", _listenEndPoint.Address, _listenEndPoint.Port);

                _listenSocket.AcceptAsync(_eventAccept);
            }
            catch (AegisException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new AegisException(AegisResult.NetworkError, e, e.Message);
            }
        }

Usage Example

Beispiel #1
0
 /// <summary>
 /// 클라이언트의 연결요청을 받을 수 있도록 Listener를 오픈합니다.
 /// </summary>
 /// <param name="ipAddress">접속요청 받을 Ip Address</param>
 /// <param name="portNo">접속요청 받을 PortNo</param>
 /// <returns>현재 NetworkChannel 객체를 반환합니다.</returns>
 public NetworkChannel OpenListener(String ipAddress, Int32 portNo)
 {
     Acceptor.Listen(ipAddress, portNo);
     return(this);
 }