dlech.SshAgentLib.MsysSocket.AcceptConnections C# (CSharp) Метод

AcceptConnections() приватный Метод

private AcceptConnections ( ) : void
Результат void
        void AcceptConnections()
        {
            var buffer = new byte[16];
              while (true) {
            try {
              var clientSocket = socket.Accept();
              var clientThread = new Thread(() =>
              {
            try {
              using (var stream = new NetworkStream(clientSocket)) {
                try {
                  var clientPort = ((IPEndPoint)clientSocket.RemoteEndPoint).Port;
                  var clientWaitHandleName = string.Format("{0}.{1}.{2}",
                    waitHandleNamePrefix, (UInt16)IPAddress.HostToNetworkOrder((Int16)clientPort), guidString);
                  var clientWaitHandle = EventWaitHandle.OpenExisting(clientWaitHandleName);
                  if (!EventWaitHandle.SignalAndWait(serverWaitHandle, clientWaitHandle, 10000, false)) {
                    return;
                  }
                } catch (Exception ex) {
                  Debug.Fail(ex.ToString());
                }
                Process proc = null;
                try {
                  // remote and local are swapped because we are doing reverse lookup
                  proc = WinInternals.GetProcessForTcpPort(
                    (IPEndPoint)clientSocket.RemoteEndPoint,
                    (IPEndPoint)clientSocket.LocalEndPoint);
                } catch (Exception ex) {
                  Debug.Fail(ex.ToString());
                }
                if (ConnectionHandler != null) {
                  ConnectionHandler(stream, proc);
                }
              }
            } catch {
              // can throw if remote closes the connection at a bad time
            } finally {
              lock (clientSocketsLock) {
                clientSockets.Remove(clientSocket);
              }
            }
              });
              lock (clientSocketsLock) {
            clientSockets.Add(clientSocket);
              }
              clientThread.Name = string.Format("MsysClient{0}", clientCount++);
              clientThread.Start();
            } catch (Exception ex) {
              Debug.Assert(disposed, ex.ToString());
              break;
            }
              }
        }