public virtual void OnRaiseClientConnectedEvent(ClientConnectedEventArgs e) { EventHandler <ClientConnectedEventArgs> handler = RaiseClientConnectedEvent; if (handler != null) { handler(this, e); } }
public async void StartListeningForIncomingConnection(IPAddress ipaddr = null, int port = 23000) { if (ipaddr == null) { ipaddr = IPAddress.Any; } if (port <= 0) { port = 23000; } mIP = ipaddr; mPort = port; Debug.WriteLine(string.Format("IP Address: {0} - Port: {1}", mIP.ToString(), mPort)); mTcpListener = new TcpListener(mIP, mPort); try { mTcpListener.Start(); KeepRunning = true; while (KeepRunning) { var returnByAccept = await mTcpListener.AcceptTcpClientAsync(); mClients.Add(returnByAccept); Debug.WriteLine(string.Format("Client connected successfully, count {0} - {1}", mClients.Count, returnByAccept.Client.RemoteEndPoint)); HandleClientConnection handleConnection = new HandleClientConnection(socketServer: this, paramClient: returnByAccept); handleConnection.TakeCareOfClientListen(); ClientConnectedEventArgs eaClientConnected; eaClientConnected = new ClientConnectedEventArgs(returnByAccept.Client.RemoteEndPoint.ToString()); OnRaiseClientConnectedEvent(eaClientConnected); } } catch (Exception exp) { Debug.WriteLine(exp.ToString()); } }