BeardedManStudios.Network.DefaultServerTCP.Listen C# (CSharp) Метод

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

private Listen ( object sender, DoWorkEventArgs e ) : void
sender object
e System.ComponentModel.DoWorkEventArgs
Результат void
		private void Listen(object sender, DoWorkEventArgs e)
		{
			while (true)
			{
				if (listenWorker.CancellationPending)
				{
					e.Cancel = true;
					break;
				}

				TcpListener tcpListener = (TcpListener)e.Argument;

				try
				{
					for (int i = 0; i < Players.Count; i++)
						if (!((TcpClient)Players[i].SocketEndpoint).Connected)
							Players.RemoveAt(i--);

					// Create a TCP socket.
					// If you ran this server on the desktop, you could use 
					// Socket socket = tcpListener.AcceptSocket()
					// for greater flexibility.
					TcpClient tcpClient = tcpListener.AcceptTcpClient();

					if (Connections >= MaxConnections)
					{
						lock (writeMutex)
						{
							writeBuffer.Clear();
							ObjectMapper.MapBytes(writeBuffer, "Max Players Reached On Server");

							staticWriteStream.SetProtocolType(Networking.ProtocolType.TCP);
							WriteAndClose(tcpClient, staticWriteStream.Prepare(
								this, NetworkingStream.IdentifierType.Disconnect, null, writeBuffer));
						}

						return;
					}

					// TODO:  Set the name
					string name = string.Empty;

					NetworkingPlayer player = new NetworkingPlayer(ServerPlayerCounter++, tcpClient.Client.RemoteEndPoint.ToString(), tcpClient, name);

					lock (Players)
					{
						Players.Add(player);
					}

					listenWorker.ReportProgress(0, player);
				}
				catch (NetworkException exception)
				{
					UnityEngine.Debug.LogException(exception);
					Disconnect();
				}
			}
		}