//---- Ctor //--------- public void Init() { _log = new UnityLogger(); LoadClientState(); Connection = new ClientConnection(State, _log); _connectionListener = new ClientConnectionListener(State, Connection, _log); Lobby.Init(_log); // Hook up listeners Connection.ConnectionListener = _connectionListener; Connection.LobbyListener = Lobby; }
/// <summary> /// Starts the server services /// </summary> /// <returns></returns> public bool Start() { if (_isRunning == true) { Log.info("Server is already running"); return true; } else { Log.info("Starting TCP Server..."); _ipEndPoint = new IPEndPoint(IPAddress.Parse(_ipAddress), _portNumber); try { _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); } catch (SocketException e) { Log.error("Failed to start server. " + ((SocketError)e.ErrorCode).ToString()); return false; } try { _socket.Bind(_ipEndPoint); } catch (SocketException e) { Log.error("Failed to start server. " + ((SocketError)e.ErrorCode).ToString()); return false; } _clientConnectionListener = new ClientConnectionListener(_socket, this); _clientConnectionListenerThread = new Thread(_clientConnectionListener.Listen); Log.info("Starting Remote Client Listener service..."); _clientConnectionListenerThread.Start(); } _isRunning = true; return true; }
/// <summary> /// リスナーを削除 /// </summary> /// <param name="listener"></param> public void RemoveListener(ClientConnectionListener listener) { ClientConnectionListeners.Remove(listener); }
/// <summary> /// リスナーを追加 /// </summary> /// <param name="listener"></param> public void AddListener(ClientConnectionListener listener) { ClientConnectionListeners.Add(listener); }