/// <summary> /// Default constructor /// </summary> /// <param name="acceptor">acceptor object</param> /// <param name="callBackObj">callback object</param> /// <param name="port">port</param> /// <param name="receiveType">receive type</param> /// <param name="noDelay">noDelay falg</param> public ParallelServerOps(IParallelServerAcceptor acceptor, String port, IParallelServerCallback callBackObj = null, IParallelRoomCallback roomCallBackObj = null, ReceiveType receiveType = ReceiveType.SEQUENTIAL, int socketCount = SocketCount.Infinite, int streamCountPerSocket = SocketCount.Infinite) { this.Port = port; this.Acceptor = acceptor; this.CallBackObj = callBackObj; this.RoomCallBackObj = roomCallBackObj; this.ReceiveType = receiveType; MaxSocketCount = socketCount; MaxStreamCountPerSocket = streamCountPerSocket; }
/// <summary> /// Start the server and start accepting the client /// </summary> protected override void execute() { StartStatus status = StartStatus.FAIL_SOCKET_ERROR; try { lock (m_generalLock) { if (IsServerStarted) { status = StartStatus.FAIL_ALREADY_STARTED; throw new CallbackException(); } CallBackObj = m_serverOps.CallBackObj; Port = m_serverOps.Port; ReceiveType = m_serverOps.ReceiveType; if (Port == null || Port.Length == 0) { Port = ServerConf.DEFAULT_PORT; } m_socketMap.Clear(); ServerOps listenerOps = new ServerOps(this, m_serverOps.Port,true); m_listener.StartServer(listenerOps); } } catch (CallbackException) { CallBackObj.OnServerStarted(this, status); return; } catch (Exception ex) { Console.WriteLine(ex.Message + " >" + ex.StackTrace); if (m_listener != null) m_listener.StopServer(); m_listener = null; CallBackObj.OnServerStarted(this, StartStatus.FAIL_SOCKET_ERROR); return; } CallBackObj.OnServerStarted(this, StartStatus.SUCCESS); }
/// <summary> /// Default constructor /// </summary> /// <param name="callBackObj">callback object</param> /// <param name="port">port</param> /// <param name="receiveType">receive type</param> /// <param name="noDelay">noDelay falg</param> public ParallelServerOps(IParallelServerCallback callBackObj, String port,ReceiveType receiveType) { this.Port = port; this.CallBackObj = callBackObj; this.ReceiveType = receiveType; }