protected void OnConnectionRequest(ConnectionRequestedEventArgs eventArgs) { byte[] bytes = eventArgs.bytes; if (bytes != null && bytes.Length == connectionRequestMessageLength) { try { Client.TYPE type = Client.Identify((byte)(bytes[0])); string name = Client.typenames[type] + "_" + Encoding.ASCII.GetString(bytes, 1, 2); Client newClient = Client.CreateNew(type, name, this); ClientConnectionRequestedEventArgs newClientEventArgs = new ClientConnectionRequestedEventArgs(newClient); OnClientConnectionRequested(newClientEventArgs); } catch (Exception e) { ExceptionOccuredEventArgs exceptionOccuredEventArgs = new ExceptionOccuredEventArgs(e); OnWaitForConnectionRequestExceptionOccured(exceptionOccuredEventArgs); StartWaitingForConnectionRequest(); } } else { StartWaitingForConnectionRequest(); } }
static void ClientConnectionRequestedEventHandler(object sender, ClientConnectionRequestedEventArgs eventArgs) { Client newClient = eventArgs.client; AddDataFlow(newClient); clientsByType[newClient.type].Add(newClient); unidentifiedPorts.Remove(newClient.port); newClient.StartReading(); Console.WriteLine("New Client: " + newClient.name); }
protected void OnClientConnectionRequested(ClientConnectionRequestedEventArgs eventArgs) { EventHandler <ClientConnectionRequestedEventArgs> handler = ClientConnectionRequested; handler?.Invoke(this, eventArgs); }