allora... questo metodo l'ha fatto un mio compagno (non so se é giusto) e serve per mandare appunto la riposta:
codice:
public static synchronized void sendMessage(InetAddress recipientAddress,
int recipientPort, Message message) throws Exception {
/* TODO: 1. Construct and send a reply message
Note: you must set the message's sender address by getting
the local address from the socket you create. */
// ==============================================================================PROVA
DatagramSocket dsocket = new DatagramSocket();
ByteArrayOutputStream bostream = new ByteArrayOutputStream();
ObjectOutputStream dostream = new ObjectOutputStream(bostream);
dostream.writeObject(message);
dostream.close();
bostream.close();
InetAddress senderAddress = dsocket.getLocalAddress();
message.senderAddress = senderAddress;
byte[] bMessage = bostream.toByteArray();
DatagramPacket messagePacket = new DatagramPacket(bMessage, bMessage.length, recipientAddress, recipientPort);
dsocket.connect(recipientAddress,recipientPort);
//System.out.println("debug - Communication.java->sendMessage:"+recipientAddress+" <-questo è il recipient Address");
dsocket.send(messagePacket);
dsocket.close();
// ===============================================================================PROVA!!!!!!
}
ora io per ricevere il messaggio ho fatto questo.. ma dubito sia giusto:
codice:
public static Message getReplyMessage(ServerSocket replySocket)
throws Exception {
System.out.println("debug - Communication->getReplyMessage: ricevuta risposta!");
//TODO 1. Wait for a reply (unicast) grant message
Socket rSocket = replySocket.accept(); //accetta connessione
InputStream rIStream = rSocket.getInputStream(); //prendi inputstream
ObjectInputStream rStream = new ObjectInputStream(rIStream); //trasformalo in objectInputStream
Message recvUMess = (Message) rStream.readObject(); //castalo in Message!
return recvUMess; //restituisci il messaggio
}
ci capisci qualcosa??? help!!!