コード例 #1
0
	public void MainMenu(){
		
		GameController.controller.gameOn = false;
		GameController.controller.connected = false;
		//Cerramos conexiones con cliente y servidor
		if (this.isServer == true) {
			Paquete p = new Paquete();
			p.identificadorPaquete = Paquete.Identificador.desconectar;
			GameController.controller.serverUDP.serverSocket.Close();
			GameController.controller.tcpServer.sendMessage(p);
			GameController.controller.tcpServer.CloseConnection();
			GameController.controller.tcpServer = null;
		} 
		else {
			Paquete p = new Paquete();
			p.identificadorPaquete = Paquete.Identificador.desconectar;
			GameController.controller.clientUDP.clientSocket.Close();
			GameController.controller.tcpClient.sendMessage(p);
			GameController.controller.tcpClient.CloseConnection();
			GameController.controller.tcpClient = null;
		
		}

		
		Application.LoadLevel (0);
	}
コード例 #2
0
	public void sendMessage(Paquete p){
		byte[] data	;
		p.id = this.sendingPackagesCounter;
		sendingPackagesCounter++;
		// Obtenemos los bytes del paquete
		data = GetBytes(p.GetDataStream());		
		// Enviar al servidor
		clientSocket.BeginSendTo(data, 0, data.Length, SocketFlags.None, epServer, new System.AsyncCallback(this.SendData), null);	
	}
コード例 #3
0
	public void sendMessage(Paquete p){
		
		NetworkStream stream = client.GetStream ();
		String s = p.GetDataStream ();
		byte[] message = GetBytes (s);
		stream.Write (message, 0,message.Length);
		Debug.Log("TCP Client: Enviado mensaje!");
		
	}
コード例 #4
0
	public void sendMessage(Paquete p){
		byte[] data	;
		p.id = this.sendingPackagesCounter;
		sendingPackagesCounter++;
		// Obtenemos los bytes del paquete
		data = GetBytes(p.GetDataStream());		
		foreach (Cliente client in this.listaClientes)
		{
			// Enviar a todos los clientes
			serverSocket.BeginSendTo(data, 0, data.Length, SocketFlags.None, client.endPoint, new AsyncCallback(this.enviarData), client.endPoint);	
		}
	}
コード例 #5
0
        public void GuardarReserva(Reserva re)
        {
            Paquete paq = new Paquete();

            paq = Contexto.Paquete.Where(p => p.Id == re.IdPaquete).First();
            var cant = paq.LugaresDisponibles - re.CantPersonas;

            paq.LugaresDisponibles = cant;

            Contexto.Reserva.Add(re);
            Contexto.SaveChanges();
        }
コード例 #6
0
        public IEnumerable <IModel> GetByFilter(IFilter modelFilter)
        {
            Paquete pqtFilter = (Paquete)modelFilter;

            return((from pqt in context.Paquetes
                    where
                    (pqtFilter.Id == 0 || pqt.Id == pqtFilter.Id) &&
                    (pqtFilter.Descripcion == string.Empty || pqt.Descripcion.Contains(pqtFilter.Descripcion)) &&
                    (pqtFilter.Comision == 0 || pqt.Comision == pqtFilter.Comision) &&
                    (pqtFilter.Precio == 0 || pqt.Precio == pqtFilter.Precio)
                    select pqt).ToList());
        }
コード例 #7
0
        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            Paquete paquete = new Paquete();

            paquete.Hoteles = lstHoteles.Items
                              .Cast <ListItem>()
                              .Where(li => li.Selected)
                              .Select(i => new Hotel
            {
                Id = Int32.Parse(i.Value),
            })
                              .ToList <Hotel>();

            paquete.Vuelos = lstVuelos.Items
                             .Cast <ListItem>()
                             .Where(li => li.Selected)
                             .Select(i => new Vuelo
            {
                Id = Int32.Parse(i.Value),
            })
                             .ToList <Vuelo>();

            paquete.Tags = lstTags.Items
                           .Cast <ListItem>()
                           .Where(li => li.Selected)
                           .Select(i => new Tag
            {
                Id = Int32.Parse(i.Value),
            })
                           .ToList <Tag>();

            paquete.Destinos = lstDestinos.Items
                               .Cast <ListItem>()
                               .Where(li => li.Selected)
                               .Select(i => new Destino
            {
                Id = Int32.Parse(i.Value),
            })
                               .ToList <Destino>();

            paquete.Precio      = decimal.Parse(txtPrecio.Text);
            paquete.Descripcion = txtDescripcion.Text;
            paquete.Titulo      = txtTitulo.Text;

            Paquete guardado = paqueteBll.Registrar(paquete);

            paquete.Fotos = ArmarFotos(files, guardado.Id);

            paqueteBll.AgregarFotos(paquete);

            Response.Redirect("PaqueteAbm.aspx", true);
        }
コード例 #8
0
        public void AgregarPaquete(Paquete P, UsuarioEmpleado ULogueado)
        {
            SqlConnection oConexion = new SqlConnection(Conexion.Cnn(ULogueado));

            SqlCommand oComando = new SqlCommand("PaquetesAlta", oConexion);

            oComando.CommandType = CommandType.StoredProcedure;

            SqlParameter _codBar  = new SqlParameter("@CodigodeBarras", P.CodigoBarras);
            SqlParameter _tipo    = new SqlParameter("@Tipo", P.Tipo);
            SqlParameter _desc    = new SqlParameter("@Descripcion", P.Descripcion);
            SqlParameter _peso    = new SqlParameter("@Peso", P.Peso);
            SqlParameter _nomUsu  = new SqlParameter("@NombreUsuarioEmpresa", P.Empresa.NombreUsuario);
            SqlParameter _Retorno = new SqlParameter("@Retorno", SqlDbType.Int);

            _Retorno.Direction = ParameterDirection.ReturnValue;

            oComando.Parameters.Add(_codBar);
            oComando.Parameters.Add(_tipo);
            oComando.Parameters.Add(_desc);
            oComando.Parameters.Add(_peso);
            oComando.Parameters.Add(_nomUsu);
            oComando.Parameters.Add(_Retorno);

            try
            {
                oConexion.Open();
                oComando.ExecuteNonQuery();
                int returned_value = Convert.ToInt32(_Retorno.Value);

                if (returned_value == -1)
                {
                    throw new Exception("El codigo del paquete que intenta dar de alta ya existe");
                }
                if (returned_value == -2)
                {
                    throw new Exception("No existe la empresa que intenta asociar al paquete");
                }
                if (returned_value == -3)
                {
                    throw new Exception("Ha habido un error al intentar dar de alta el paquete");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oConexion.Close();
            }
        }
コード例 #9
0
        public Paquete FindById(int idpaquete)
        {
            Paquete    x = null;
            Itinerario y = null;

            conexion = con.getConexion();
            try
            {
                conexion.Open();
                comando             = new SqlCommand("Usp_FindPaqueteById", conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@idpaquete", idpaquete);

                reader = comando.ExecuteReader();

                x             = new Paquete();
                x.itinerarios = new List <Itinerario>();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        y                     = new Itinerario();
                        x.titulo              = reader.GetString(0);
                        x.destino             = reader.GetString(1);
                        x.dias                = reader.GetInt32(2);
                        x.noches              = reader.GetInt32(3);
                        x.minPasajeros        = reader.GetInt32(4);
                        x.horasAnticipado     = reader.GetInt32(5);
                        x.precioHabDobleTripe = reader.GetInt32(6);
                        x.foto1Name           = reader.GetString(7);
                        x.foto2Name           = reader.GetString(8);
                        x.foto3Name           = reader.GetString(9);
                        x.foto4Name           = reader.GetString(10);
                        x.foto5Name           = reader.GetString(11);
                        x.foto6Name           = reader.GetString(12);
                        y.dia                 = reader.GetInt32(13);
                        y.titulo              = reader.GetString(14);
                        y.descripcion         = reader.GetString(15);
                        y.alojamiento         = reader.GetString(16);
                        y.alimentacion        = reader.GetString(17);
                        x.itinerarios.Add(y);
                    }
                }
                conexion.Close();
            }
            catch (Exception ex)
            {
            }

            return(x);
        }
コード例 #10
0
	public void receiveMessage(){
		Debug.Log ("TCP CLIENT: En metodo lectura");
		NetworkStream stream = client.GetStream ();
		byte[] bb=new byte[1024];
		stream.Read (bb,0,bb.Length);
		string s = GetString (bb);
		Paquete p = new Paquete(s);
		Debug.Log ("TCP Client: El XML recibido" + p.GetDataStream ()); 
		Paquete.Identificador accion = p.identificadorPaquete;
		if (accion == Paquete.Identificador.jugadorListo) {
			GameController.controller.opponentReady = true;
			
		} else if (accion == Paquete.Identificador.moverAbajo) {
			//mover el server abajo
			GameController.controller.ship1.rDown = true;
			
		} else if (accion == Paquete.Identificador.moverArriba) {
			//mover el server arriba
			GameController.controller.ship1.rUp = true;
			
		} else if (accion == Paquete.Identificador.moverIzquierda) {
			//mover el server izquierda
			GameController.controller.ship1.rLeft = true;
			
		} else if (accion == Paquete.Identificador.moverDerecha) {
			//mover el server derecha
			GameController.controller.ship1.rRight = true;
			
		} else if (accion == Paquete.Identificador.disparar) {
			GameController.controller.ship1.fireB = true;
		} else if (accion == Paquete.Identificador.colision) {
			
		} else if (accion == Paquete.Identificador.accesoAutorizado) {
			Debug.Log ("TCP: Ya me autorizaron :)");
			GameController.controller.connected = true;
		} else if (accion == Paquete.Identificador.jugadorGana) {
			if (p.jugador == 1) {
				GameController.controller.p1Wins = true;

			} else if (p.jugador == 2) {
				GameController.controller.p2Wins = true;

			}

		
		} else if (accion == Paquete.Identificador.desconectar) {
			GameController.controller.mm2 = true;
			
		} 

		
	}
コード例 #11
0
        public ActionResult Edit(Paquete Paquete)
        {
            var r = Paquete.CodPaquete > 0 ?
                    servicioPaquete.Actualizar(Paquete) :
                    servicioPaquete.Insertar(Paquete);

            if (!r)
            {
                ViewBag.Message = "Ocurrio un error inesperado";
                return(View("~/Views/Shared/Error.cshtml"));
            }
            return(RedirectToAction("Index"));
        }
コード例 #12
0
        public ActionResult Create([Bind(Include = "id,cantidad,caducidad,refriId,productId")] Paquete paquete)
        {
            if (ModelState.IsValid)
            {
                db.Paquetes.Add(paquete);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.productId = new SelectList(db.Productos, "id", "codigo", paquete.productId);
            ViewBag.refriId   = new SelectList(db.Refrigeradores, "id", "codigo", paquete.refriId);
            return(View(paquete));
        }
コード例 #13
0
        public void CorreoTrackingIdRepetidoException()
        {
            //Arrange
            Correo  correo   = new Correo();
            Paquete paquete1 = new Paquete("primero", "1");
            Paquete paquete2 = new Paquete("segundo", "1");

            //Act
            correo += paquete1;

            //Assert
            Assert.ThrowsException <TrackingIdRepetidoException>(() => correo + paquete2);
        }
コード例 #14
0
 public Paquete entidadAModelo(SPaquete p, Paquete pa)
 {
     //pa.id = p.Id;
     pa.idDestinatario     = p.IdDestinatario;
     pa.idRemitente        = p.IdRemitente;
     pa.IdTrayecto         = p.IdTrayecto;
     pa.codigo             = p.Codigo;
     pa.codigoConfirmacion = p.CodigoConfirmacion;
     pa.fechaIngreso       = p.FechaIngreso;
     pa.fechaEntrega       = p.FechaEntrega;
     pa.borrado            = p.Borrado;
     return(pa);
 }
コード例 #15
0
        public void TestPaquete()
        {
            //arrange
            Correo  c  = new Correo();
            Paquete p  = new Paquete("san lorenzo", "10000");
            Paquete p2 = new Paquete("san lorenzo", "10000");

            //Act
            c += p;
            c += p2;
            //Assert
            Assert.Fail();
        }
コード例 #16
0
        public async Task <ActionResult> Create([Bind(Include = "Id,Precio,DiasMin,DiasMax,Express,PaqueteriasId")] Paquete paquete)
        {
            if (ModelState.IsValid)
            {
                db.Paquete.Add(paquete);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index", "Paqueterias"));
            }

            ViewBag.PaqueteriasId = new SelectList(db.Paqueterias, "Id", "Nombre", paquete.PaqueteriasId);
            return(View(paquete));
        }
コード例 #17
0
 /// <summary>
 /// Agrega paquete a Correo
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAgregar_Click(object sender, EventArgs e)
 {
     try
     {
         Paquete p = new Paquete(this.txtDireccion.Text, this.mtxtTrackingID.Text);
         p.InformaEstado += new Paquete.DelegadoEstado(paq_InformaEstado);
         correo          += p;
     }
     catch (TrackingIdRepetidoException ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #18
0
 private void btnAgregar_Click(object sender, EventArgs e)
 {
     try
     {
         Paquete nuevoPaquete = new Paquete(this.txtDireccion.Text, this.mtxtTrackingID.Text);
         nuevoPaquete.InformaEstado += this.paq_InformaEstado;
         this.correo += nuevoPaquete;
     }
     catch (TrackingRepetidoException ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #19
0
        public ActionResult Eliminar(int id)
        {
            if (Convert.ToBoolean(Session["EsAdmin"]))
            {
                using (var db = new TurismoAEGLContext())
                {
                    Paquete paq = db.Paquete.Find(id);
                    return(View(paq));
                }
            }

            return(RedirectToAction("Login", "Home"));
        }
コード例 #20
0
        public void TestVerifcarQueDosPaquetesIgualesNoSeCarguen()
        {
            //arrange
            Paquete p1     = new Paquete("asd", "123");
            Paquete p2     = new Paquete("asd", "123");
            Correo  correo = new Correo();

            //act
            correo += p1;
            correo += p2;

            //assert manejado en la declaracion del metodo
        }
コード例 #21
0
        public ActionResult Create([Bind(Include = "PaqueteId")] Paquete paquete)
        {
            if (ModelState.IsValid)
            {
                _UnityOfWork.Paquetes.Add(paquete);
                _UnityOfWork.Paquetes.Add(paquete);
                //db.SaveChanges();
                _UnityOfWork.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(paquete));
        }
コード例 #22
0
        public void PaqueteRepetidoTest()
        {
            //Arrange
            Correo  mailbox = new Correo();
            Paquete p1      = new Paquete("Tailandia", "04K-L3");
            Paquete p2      = new Paquete("Japon", "04K-L3");

            //Act
            mailbox += p1;
            mailbox += p2;

            //Assert - no hay porque se espera la excepcion
        }
コード例 #23
0
        public void TestVerificaNoIdRepetidos()
        {
            //act
            Correo  correoTest;
            Paquete paqueteTest;

            //arrange
            correoTest  = new Correo();
            paqueteTest = new Paquete("direccion de prueba", "123456");

            correoTest += paqueteTest;
            correoTest += paqueteTest;
        }
コード例 #24
0
        public void TestCargarPaquetesMismoTrackingId()
        {
            // arrange
            Paquete p1     = new Paquete("Calle falsa 123", "111-111-1111");
            Paquete p2     = new Paquete("Avenida Siempre Viva 2020", "111-111-1111");
            Correo  correo = new Correo();

            // act
            correo += p1;
            correo += p2;

            // assert
        }
コード例 #25
0
        public void VerificarPaqueteDuplicado()
        {
            Correo correo = new Correo();

            Paquete paquete1 = new Paquete("Mitre 123", "123-123-1234");
            Paquete paquete2 = new Paquete("Alsino 345", "123-123-1234");

            correo += paquete1;
            correo += paquete2;

            // en verdad no llega a este punto pues deberia lanzar la excepcion antes
            Assert.AreEqual(paquete1, paquete2);
        }
コード例 #26
0
 private void btnAgregar_Click(object sender, EventArgs e)
 {
     paquete = new Paquete(txtDireccion.Text, mtxtTrackingID.Text);
     paquete.InformaEstado += paq_InformaEstado;
     try
     {
         correo += paquete;
     }
     catch (TrackingIdRepetidoException ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #27
0
ファイル: Form1.cs プロジェクト: Luchettinni/tp_laboratorio_2
 private void BtnAgregar_Click(object sender, EventArgs e)
 {
     try
     {
         Paquete paquete = new Paquete(txtDireccion.Text, mtxtTrackingID.Text);
         paquete.informaEstado += this.paq_InformaEstado;
         correo += paquete;
     }
     catch (Exception eX)
     {
         MessageBox.Show(eX.Message);
     }
 }
コード例 #28
0
        public void RepeticionDePaquete()
        {
            Correo  c  = new Correo();
            Paquete p1 = new Paquete("paq0", "111-111-1112");

            c += p1;
            Paquete p2 = new Paquete("paq1", "111-111-1112");

            c += p2;
            Paquete p3 = new Paquete("paq2", "111-111-1112");

            c += p3;
        }
コード例 #29
0
        /// <summary>
        /// Agrega un Paquete al sistema.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnAgregar_Click(object sender, EventArgs e)
        {
            Paquete paquete = new Paquete(this.txtDireccion.Text, this.mtxtTrackingID.Text);

            paquete.InformaEstado    += new Paquete.DelegadoEstado(paq_InformaEstado);
            paquete.InformaException += new Paquete.DelegadoException(paq_InformaException);
            try {
                correo += paquete;
            } catch (TrackingIdRepetidoException E) {
                MessageBox.Show(E.Message, "Paquete repetido", MessageBoxButtons.OK, MessageBoxIcon.Question);
            }
            this.ActualizarEstados();
        }
コード例 #30
0
        public void Verificacio_TrackingID_Repetido()
        {
            // arrange
            Correo  correo = new Correo();
            Paquete p1     = new Paquete("Av. Mitre 750.", "111");
            Paquete p2     = new Paquete("Av. Mitre 750.", "111");

            // act
            correo += p1;
            correo += p2;

            // assert es manejado en el ExpectedException
        }
コード例 #31
0
ファイル: UnitTest1.cs プロジェクト: javijps/tp_laboratorio_2
        public void TrackingIdDiferente()
        {
            Correo  c  = new Correo();
            Paquete p1 = new Paquete("Pareta 515", "1234");
            Paquete p2 = new Paquete("Pareta 515", "4321");

            c += p1;
            c += p2;

            int cantidadDePaquetes = c.Paquetes.Count;

            Assert.IsTrue(cantidadDePaquetes == 2);
        }
コード例 #32
0
        public void TestSameTrackingID()
        {
            //ARRANGE
            Correo correoPrueba = new Correo();
            //Mismo TrackingID en ambos Paquetes
            Paquete paquetePrueba1 = new Paquete("Mitre 670", "01");
            Paquete paquetePrueba2 = new Paquete("Belgrano 560", "01");

            //ACT
            correoPrueba += paquetePrueba1;
            correoPrueba += paquetePrueba2;
            //ASSERT Controlado por la excepcion
        }
コード例 #33
0
        public ActionResult Edit([Bind(Include = "PaqueteId")] Paquete paquete)
        {
            if (ModelState.IsValid)
            {
                //db.Entry(paquete).State = EntityState.Modified;
                _UnityOfWork.StateModedified(paquete);
                //db.SaveChanges();
                _UnityOfWork.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View(paquete));
        }
コード例 #34
0
 public Boolean SavePaquete(ref Paquete Item)
 {
     try
     {
         if (Item.Instance != Infrastructure.Aspect.BusinessEntity.InstanceEntity.Unchanged)
         {
             return(BL_Paquete.Save(ref Item));
         }
         return(true);
     }
     catch (Exception)
     { throw; }
 }
コード例 #35
0
        public ActionResult DeleteConfirmed(int id)
        {
            // Paquete paquete = db.Paquetes.Find(id);
            Paquete paquete = _UnityOfWork.Paquete.Get(id);

            //  db.Paquetes.Remove(paquete);
            _UnityOfWork.Paquete.Delete(paquete);

            // db.SaveChanges();
            _UnityOfWork.SaveChanges();

            return(RedirectToAction("Index"));
        }
コード例 #36
0
	public void ConnectAsClient(){
		ip = WelcomeScreen.ipInput.text.ToString ();
		
		
		client.Connect(IPAddress.Parse(ip), 30000);
		Paquete msg = new Paquete ();
		msg.identificadorPaquete = Paquete.Identificador.conectar;
		sendMessage (msg);

		while (connect) {
			receiveMessage();
			
		}
	}
コード例 #37
0
ファイル: Ship.cs プロジェクト: PJEstrada/proyecto1-redes
	public void sendPosition(){
		float x, y;
		x = transform.position.x;
		y = transform.position.y;
		Paquete p = new Paquete ();
		p.identificadorPaquete = Paquete.Identificador.nuevaPos;
		p.x = x;
		p.y = y;
		if (GameController.controller.isServer) {
			GameController.controller.serverUDP.sendMessage(p);
		} else {
			GameController.controller.clientUDP.sendMessage(p);
		
		}


	}
コード例 #38
0
	private void ReceiveData(IAsyncResult ar)
	{
		try
		{
			//Debug.Log("UDP Client: Recibiendo data : ");

			// Recibimos toda la data
			this.clientSocket.EndReceive(ar);
			// Inicializamos un paquete para almacenar la data 
			Paquete receivedData = new Paquete(GetString(this.dataStream));
			//Debug.Log("UDP Client: Received data num : "+receivedData.id);
			//Debug.Log ("UDP Client: Client Counter: "+this.entrantPackagesCounter);
			if(receivedData.id<this.entrantPackagesCounter){
				//Debug.Log("UDP Client: Paquete Descartado : ");
				return; //Descartamos el paquete
				
			}
			else if(receivedData.id > this.entrantPackagesCounter){
				this.entrantPackagesCounter = receivedData.id;
			}
			else{
				this.entrantPackagesCounter++;
			}			




			//Actualizamos el Mundo del Juego

			if(receivedData.identificadorPaquete == Paquete.Identificador.nuevaPos){



				if(GameController.controller.ship1.posx >= receivedData.x +60.0 || GameController.controller.ship1.posy >= receivedData.y +60.0){
					//Corregimos la posicion
					//Debug.Log ("UDP CLIENT: DESFASE DE SERVER!! Corrigiendo...");
					float newx = receivedData.x;
					float newy = receivedData.y;
					GameController.controller.ship1.newx  = newx;
					GameController.controller.ship1.newy = newy;
					GameController.controller.ship1.setPos = true;
					GameController.controller.ship1.transform.position = new Vector3(newx,newy,0);
					
					
				}
				else{
					/*//Actualizamos tiempos y transforms para prediccion e interpolacion
					GameController.controller.player1.transform.position = new Vector3(receivedData.x,receivedData.y,0);
					syncVelocity = GameController.controller.player1.rigidbody2D.velocity;
					
					syncTime = 0f;
					syncDelay = Time.time -lastSynchronizationTime;
					lastSynchronizationTime = Time.time;
					
					syncEndPosition = syncPosition+syncVelocity*syncDelay;
					syncStartPosition = new Vector3(receivedData.x,receivedData.y,0);*/

				}






			}
			else if (receivedData.identificadorPaquete == Paquete.Identificador.corregirPos){
				//Corregimos la posicion
				//Debug.Log ("UDP CLIENT: Recibi correccion de pos del server!! Corrigiendo...");
				float newx = receivedData.x;
				float newy = receivedData.y;
			}


				

			// Reset data stream
			this.dataStream = new byte[1024];
			// Continue listening for broadcasts
			clientSocket.BeginReceiveFrom(this.dataStream, 0, this.dataStream.Length, SocketFlags.None, ref epServer, new AsyncCallback(this.ReceiveData), null);
		}
		catch (ObjectDisposedException)
		{ 
		
		}
		catch (Exception ex)
		{
			//Debug.LogException(ex);

			throw ex;
		}
	}
コード例 #39
0
ファイル: MainGame.cs プロジェクト: PJEstrada/proyecto1-redes
	public void playerReady(){
		GameController.controller.player1 = GameObject.Find ("Player1");
		GameController.controller.player2 = GameObject.Find ("Player2");
		GameController.controller.ship1 = GameController.controller.player1.GetComponent<Ship> ();
		GameController.controller.ship2 = GameController.controller.player2.GetComponent<Ship> ();
		GameController.controller.ship1.player = 1;
		GameController.controller.ship2.player = 2;
		GameController.controller.ship2= GameController.controller.player2.GetComponent<Ship> ();
		//Eliminando texto 
		GameController.controller.mainGame = GameObject.Find ("bg").GetComponent<MainGame> ();
		GameObject temp = GameObject.Find ("Win");
		Text text = temp.GetComponent<Text> ();
		text.enabled = false;
		//Escondiendo botones y textos
		listoText.GetComponent<Text> ().enabled = false;
		salir.SetActive (false);
		jugarDeNuevo.SetActive (false);
		//Reactivando Naves
		GameController.controller.player1.GetComponent<SpriteRenderer> ().enabled = true;
		GameController.controller.player2.GetComponent<SpriteRenderer> ().enabled = true;
		
		esperandoOponente.SetActive (true);
		
		ready.GetComponent<Image> ().color = Color.green;
		
		if (GameController.controller.isServer == true) {
			
			GameController.controller.imReady = true;
			//Enviamos mensaje de jugador listo a cliente
			Paquete p = new Paquete ();
			p.identificadorPaquete = Paquete.Identificador.jugadorListo;
			GameController.controller.tcpServer.sendMessage(p);
			
		} else {
			
			GameController.controller.imReady = true;
			//Enviamos mensaje de jugador listo a cliente
			Paquete p = new Paquete ();
			p.identificadorPaquete = Paquete.Identificador.jugadorListo;
			GameController.controller.tcpClient.sendMessage (p);		
		}
	}
コード例 #40
0
	public void sendMessage(Paquete p){
		
		
		NetworkStream stream = mClient.GetStream ();
		String s = p.GetDataStream ();
		byte[] message = GetBytes (s);
		stream.Write (message, 0,message.Length);
		
	}
コード例 #41
0
	//Receive Message
	public void  tcpHandler(object client){
		
		Debug.Log ("TCP: En handler del server");
		mClient = (TcpClient)client;
		//NetworkStream stream = mClient.GetStream ();
		//byte[] message = new byte[1024];
		Debug.Log ("antes TCP Server:");

		while (connect) {
			NetworkStream stream = mClient.GetStream ();
			byte[] message = new byte[1024];
			//Debug.Log ("TCP Server: Esperando Msj...");
			stream.Read (message, 0, message.Length);
			//Debug.Log ("TCP Server: Recibido nuevo Mensaje");
			Paquete receivedData = new Paquete (GetString (message));
			//Debug.Log ("TCP Server: XML recibido: " + receivedData.GetDataStream ()); 
			Paquete.Identificador accion = receivedData.identificadorPaquete;
			
			if (accion == Paquete.Identificador.conectar) {
				//Debug.Log("TCP: Ya me conecte");
				Paquete p = new Paquete();
				p.identificadorPaquete = Paquete.Identificador.accesoAutorizado;
				sendMessage(p);
				GameController.controller.connected = true;
				
				
				
			} else if (accion == Paquete.Identificador.jugadorListo) {
				GameController.controller.opponentReady=true;

				
			} else if (accion == Paquete.Identificador.moverAbajo) {
				//Debug.Log ("TCP Server: Recibi mover abajo");
				//mover abajo el cliente
				GameController.controller.ship2.rDown = true;

			} else if (accion == Paquete.Identificador.moverArriba) {
				//Debug.Log ("TCP Server: Recibi mover arriba");
				//mover arriba el cliente
				GameController.controller.ship2.rUp = true;
				
			} else if (accion == Paquete.Identificador.moverIzquierda) {
				//mover izquierda el cliente
				//Debug.Log ("TCP Server: Recibi mover izquierda");
				GameController.controller.ship2.rLeft = true;
				
			} else if (accion == Paquete.Identificador.moverDerecha) {
				//mover derecha cliente
				//Debug.Log ("TCP Server: Recibi mover derecha");
				GameController.controller.ship2.rRight = true;
				
				
			} else if (accion == Paquete.Identificador.disparar) {
				//Debug.Log ("TCP Server: Disparar");
				GameController.controller.ship2.fireB=true;
				
				
			} else if (accion == Paquete.Identificador.colision) {
				
				
				
			}		
			else if(accion == Paquete.Identificador.desconectar){
				GameController.controller.mm2 = true;
				
			}			
			
		}
		
		
		
		//stream.Close ();
		//mClient.Close ();
		
	}
コード例 #42
0
ファイル: Ship.cs プロジェクト: PJEstrada/proyecto1-redes
	void rotateDown(){
		if (!facing.Equals("down") && !facing.Equals("front")) {
			if(facing.Equals("right")){
				
				transform.Rotate (0,0,-90);
			}
			else{
				
				transform.Rotate (0,0,90);
			}
			facing = "down";
			
			//Envair mensaje
			Paquete p = new Paquete ();
			p.identificadorPaquete = Paquete.Identificador.moverAbajo;
			
			if (GameController.controller.isServer) {
				//es server
				//escribir al cliente que 
				GameController.controller.tcpServer.sendMessage(p);
				
			} else {
				//es cliente
				//escribir al server que roto
				GameController.controller.tcpClient.sendMessage(p);
			}
		}
	}
コード例 #43
0
	public void playerWins(int num){
		GameController.controller.imReady = false;
		GameController.controller.opponentReady = false;
		if (gameOn) {
			controller.gameOn = false;
			if(num==1){

				GameObject.Find("Player1").GetComponent<Ship>().stopMoving();
				GameObject.Find("Player2").GetComponent<Ship>().stopMoving();
			}
			else{
				GameObject.Find("Player2").GetComponent<Ship>().stopMoving();
				GameObject.Find("Player1").GetComponent<Ship>().stopMoving();
			}


			GameObject temp =GameObject.Find 	("Win");
			Text text = temp.GetComponent<Text> ();
			text.text = "Jugador "+num+" Gano!";
			text.enabled = true;
			jugarDeNuevo.SetActive (true);
			salir.SetActive (true);		
		
		}
		Paquete p = new Paquete ();
		p.identificadorPaquete = Paquete.Identificador.jugadorGana;
		p.jugador = num;
		GameController.controller.tcpServer.sendMessage (p);
	}
コード例 #44
0
ファイル: Ship.cs プロジェクト: PJEstrada/proyecto1-redes
	void rotateFront(){
		if (!facing.Equals("front") && !facing.Equals("down")) {
			if(facing.Equals("right")){
				
				transform.Rotate (0,0,90);
			}
			else{
				
				transform.Rotate (0,0,-90);
			}
			facing = "front";
			
			//Mandamos Mensaje (Decidir si antes de pintar o despues)
			Paquete p = new Paquete ();
			p.identificadorPaquete = Paquete.Identificador.moverArriba;
			
			if (GameController.controller.isServer) {
				//es server
				//escribir al cliente que 
				GameController.controller.tcpServer.sendMessage(p);
				
			} else {
				//es cliente
				//escribir al server que roto
				GameController.controller.tcpClient.sendMessage(p);
			}
		}	
	}
コード例 #45
0
	//Metodo que se llama al finalizar recepcion datos
	private void ReceiveData(IAsyncResult asyncResult)
	{
		try
		{
			//Debug.Log("UDP Server: Recibiendo data : ");
			byte[] data	;
			// Paquete para almacenar la data recibida
			Paquete receivedData = new Paquete(GetString(this.dataStream));
			receivedData.GetDataStream();
			//Verificamos que el paquete venga en el ordern correcto.

			//Debug.Log("UDP Server: Received data num : "+receivedData.id);
			//Debug.Log ("UDP Server: Server Counter: "+this.entrantPackagesCounter);
			if(receivedData.id<this.entrantPackagesCounter){
				//Debug.Log("UDP Server: Paquete Descartado : ");
				return; //Descartamos el paquete

			}
			else if(receivedData.id > this.entrantPackagesCounter){
				this.entrantPackagesCounter = receivedData.id;
			}
			else{
				this.entrantPackagesCounter++;
			}
			// Initialise the IPEndPoint for the clients
			IPEndPoint clients = new IPEndPoint(IPAddress.Any, 0);
			// Initialise the EndPoint for the clients
			EndPoint epSender = (EndPoint)clients;
			// Receive all data
			serverSocket.EndReceiveFrom(asyncResult, ref epSender);


			// Actualizamos el mundo del server...Pendiente
			if(receivedData.identificadorPaquete == Paquete.Identificador.conectar){
				/*// Empezamos a crear el paquete a ser enviado
				Paquete sendData = new Paquete();
				sendData.id = this.sendingPackagesCounter;
				sendData.identificadorPaquete = Paquete.Identificador.accesoAutorizado;
				GameController.controller.connected = true;
				Cliente client2 = new Cliente();
				client2.endPoint = epSender;
				client2.nombre = "Player2";

				// Add client to list
				this.listaClientes.Add(client2);*/

				// Obtenemos los bytes del paquete
				//data = GetBytes(sendData.GetDataStream());
				/*Se envia el paquete a todos los clientes*/
				/*foreach (Cliente client in this.listaClientes)
				{
					//Debug.Log("Enviando a cliente..");
				

						// Enviar a todos los clientes
						serverSocket.BeginSendTo(data, 0, data.Length, SocketFlags.None, client.endPoint, new AsyncCallback(this.enviarData), client.endPoint);
						//Debug.Log("Envio Exitoso.");

				}*/

			}
			else if(receivedData.identificadorPaquete == Paquete.Identificador.jugadorListo){
				//GameController.controller.opponentReady=true;


			}

			else if(receivedData.identificadorPaquete == Paquete.Identificador.nuevaPos){

				//Verificando que la nave del cliente se encuentre en una posicion correcta
				bool correctPosition=false;
				//X ->   ,  Y -> 25
				if(GameController.controller.ship2.posx >= receivedData.x +60.0 || GameController.controller.ship2.posy >= receivedData.y +60.0){
					//Corregimos la posicion
					//Debug.Log ("UDP SERVER: DESFASE DE CLIENTE!! Corrigiendo...");
					
					float newx = GameController.controller.ship2.posx;
					float newy = GameController.controller.ship2.posy;
					
					Paquete p = new Paquete();
					p.identificadorPaquete = Paquete.Identificador.corregirPos;
					p.x = newx;
					p.y = newy;
					sendMessage(p);

				}



			}
				/*

				else{
					//Actualizamos tiempos y transforms para prediccion e interpolacion
					GameController.controller.player2.transform.position = new Vector3(receivedData.x,receivedData.y,0);
					syncVelocity = GameController.controller.player2.rigidbody2D.velocity;
					
					syncTime = 0f;
					syncDelay = Time.time -lastSynchronizationTime;
					lastSynchronizationTime = Time.time;
					
					syncEndPosition = syncPosition+syncVelocity*syncDelay;
					syncStartPosition = new Vector3(receivedData.x,receivedData.y,0);

				}

				}*/






			
			// Volvemos a escuchar conexiones nuevamente...
			serverSocket.BeginReceiveFrom(this.dataStream, 0, this.dataStream.Length, SocketFlags.None, ref epSender, new AsyncCallback(this.ReceiveData), epSender);
			// Actualizamos el estado con un delegate
			//this.Invoke(this.updateStatusDelegate, new object[] { sendData.ChatMessage });
		}
		catch (Exception ex)
		{
			throw ex;
		}
	}
コード例 #46
0
ファイル: Ship.cs プロジェクト: PJEstrada/proyecto1-redes
	public void fire(){
		GameObject barrel = getChildGameObject (gameObject, "Barrel");
		GameObject go = (GameObject)Instantiate(bullet, barrel.transform.position, barrel.transform.rotation);
		go.GetComponent<BulletObject> ().direction = facing;

		

		//Mandamos Mensaje (Decidir si antes de pintar o despues)
		Paquete p = new Paquete ();
		p.identificadorPaquete = Paquete.Identificador.disparar;
		
		if (GameController.controller.isServer) {
			//es server
			//escribir al cliente que 
			GameController.controller.tcpServer.sendMessage(p);
			
		} else {
			//es cliente
			//escribir al server que roto
			GameController.controller.tcpClient.sendMessage(p);
		}

	}