Beispiel #1
0
    /// <summary>
    /// Envía los datos a un único cliente.
    /// Al ser una única difusión se llamaría unicast.
    /// </summary>
    void Broadcast(string data, ServidorCliente cl)
    {
        List <ServidorCliente> sc = new List <ServidorCliente>()
        {
            cl
        };

        Broadcast(data, sc);
    }
Beispiel #2
0
    // Lee desde el servidor.
    void OnIncomingData(ServidorCliente c, string data)
    {
        Debug.Log(c.nombreCliente + " Server: " + data);

        string[] datos = data.Split('|');

        switch (datos[0])
        {
        //FUERA DEL JUEGO (Conectar cuentas).
        case "CWHO":
            c.nombreCliente = datos[1];
            c.esHost        = datos[2] == "1" ? true : false;
            Broadcast("SCNN|" + c.nombreCliente + "|" + (clientes.Count - 1).ToString() + "|" + internalSeed, clientes);
            break;

        case "CDIS":
            Broadcast("SDIS|" + datos[1] + "|" + datos[2] + "|" + datos[3], clientes);
            break;

        case "CMSG":
            Broadcast("SMSG|" + datos[1] + "|" + datos[2], clientes);
            break;

        //DENTRO DEL JUEGO (Acciones del juego).
        case "CMOV":        //Cliente Movimiento
            Broadcast("SMOV|" + datos[1] + "|" + datos[2], clientes);
            break;

        case "CBUS":        //Cliente Búsqueda
            Broadcast("SBUS|" + datos[1], clientes);
            break;

        case "CDED":        //Cliente Deducción
            Broadcast("SDED|" + datos[1] + "|" + datos[2] + "|" + datos[3] + "|" + datos[4], clientes);
            break;

        case "CACU":        //Cliente Acusación
            Broadcast("SACU|" + datos[1] + "|" + datos[2] + "|" + datos[3] + "|" + datos[4], clientes);
            break;

        default:
            Debug.LogWarning("ORDEN " + datos[0] + " no reconocida");
            break;
        }
    }
Beispiel #3
0
    void AceptarClienteTcp(IAsyncResult ar)
    {
        TcpListener listener = (TcpListener)ar.AsyncState;

        string allUser = "";

        foreach (ServidorCliente sCl in clientes)
        {
            allUser += sCl.nombreCliente + '|' + sCl.ID + '|';
        }

        ServidorCliente sc = new ServidorCliente(listener.EndAcceptTcpClient(ar));

        clientes.Add(sc);

        StartListening();

        //Debug.Log("¡Alguien se ha conectado!");
        Broadcast("SWHO|" + allUser, clientes[clientes.Count - 1]);
    }