private void OnAccept(Socket socket) { IPEndPoint endPoint = socket.RemoteEndPoint as IPEndPoint; if (m_TcpClients.Count < m_MaxConnections) { TcpClientCoroutine tcpClient = new TcpClientCoroutine(m_TcpListener.CoroutineContainer, socket); int clientIndex = m_TcpClients.Count; m_TcpClients.Add(tcpClient); tcpClient.OnDisconnected += () => DisconnectedClient(clientIndex); tcpClient.OnRecieved += (bytes) => ReceiveClientMessage(bytes, clientIndex); } else { socket.Shutdown(SocketShutdown.Both); socket.Close(); } }
public void CreateNewTcpClient(int receiveBufferSize = 1024) { m_TcpClient = new TcpClientCoroutine(this, receiveBufferSize); }