Datagrama
Enviado por george472953 • 25 de Agosto de 2014 • 2.373 Palabras (10 Páginas) • 168 Visitas
import java.net.*;
import java.io.*;
public class servidorudp {
public static void main(String argv[]) {
DatagramSocket socket;
boolean fin = false;
try {
socket = new DatagramSocket(6000);
byte[] mensaje_bytes = new byte[256];
String mensaje ="";
mensaje = new String(mensaje_bytes);
String mensajeComp ="";
DatagramPacket paquete = new DatagramPacket(mensaje_bytes,256);
DatagramPacket envpaquete = new DatagramPacket(mensaje_bytes,256);
socket.receive(paquete);
mensaje = new String(mensaje_bytes).trim();
//Mostramos el mensaje
System.out.println(mensaje);
if (mensaje.startsWith("HELLO")) {
mensajeComp ="HELLO";
}
//Obtenemos el puerto
int puerto = paquete.getPort();
//Obtenemos la dirección
InetAddress address = paquete.getAddress();
byte[] mensaje2_bytes = new byte[256];
//formateamos el mensaje de salida
mensaje2_bytes = mensajeComp.getBytes();
//Preparamos el paquete que vamos a enviar
envpaquete = new DatagramPacket(mensaje2_bytes,mensajeComp.length(),address,puerto);
// Realizamos el envio
socket.send(envpaquete);
//variables necesarias para llevar la cuenta de compras
int comp1, comp2, comp3,comp4, comp5;
comp1= comp2= comp3=comp4= comp5= 0;
//Iniciamos el bucle
do {
// Recibimos el paquete
socket.receive(paquete);
// Lo formateamos
mensaje = new String(mensaje_bytes).trim();
// Lo mostramos por pantalla
System.out.println(mensaje);
//Dependiendo de la sentencia que haya enviado el cliente realizaremos una acción
if (mensaje.startsWith("TOTAL")) {
int total= 0;
total=comp1*10+comp2*19+comp3*26+comp4*38+comp5*40;
System.out.println("TOTAL :"+comp1+";"+comp2+";"+comp3+";"+comp4+";"+comp5+":"+ total );
mensajeComp="TOTAL :"+comp1+";"+comp2+";"+comp3+";"+comp4+";"+comp5+":"+ total;
}
else if (mensaje.startsWith("COMP 1")) {
System.out.println(":10 €");
mensajeComp=":10 €";
++comp1;
}
else if (mensaje.startsWith("COMP 2")) {
System.out.println(":19 €");
mensajeComp=":19 €";
++comp2;
}
else if (mensaje.startsWith("COMP 3")) {
System.out.println(":26 €");
mensajeComp=":26 €";
++comp3;
}
else if (mensaje.startsWith("COMP 4")) {
System.out.println(":38 €");
mensajeComp=":38 €";
++comp4;
}
else if (mensaje.startsWith("COMP 5")) {
System.out.println(":40 €");
mensajeComp=":40 €";
++comp5;
}
else if (mensaje.startsWith("ANUL 1")) {
if (comp1>=1){
System.out.println(":-10 €");
mensajeComp=":-10 €";
--comp1;
}
}
else if (mensaje.startsWith("ANUL 2")) {
if (comp2>=1){
System.out.println(":-19 €");
mensajeComp=":-19 €";
--comp2;
}
}
else if (mensaje.startsWith("ANUL
...