Luceen
26th March 2007, 21:30
qualcuno mi sa dire cosa c'è che non và in questo codice?
import java.net.*;
import java.util.logging.*;
import java.lang.*;
public class ServerSomma {
public static void main(String[] args) throws Exception{
Logger logger = Logger.getLogger("global");
//logger.setLevel(Level.OFF);
if (args.length != 3)
System.out.println("Need 3 parameter!");
else{
int myPort=Integer.parseInt(args[2]);
int sum=0, num;
String message;
final int MAX_LEN = 10;
try {
InetAddress receiverHost =InetAddress.getByName(args[0]);
int receiverPort = Integer.parseInt(args[1]);
logger.info("Creo il socket");
DatagramSocket mySocket =new DatagramSocket(myPort);
logger.info("Creo il datagram packet");
byte[] buffer = new byte[MAX_LEN];
DatagramPacket datagram=new DatagramPacket(buffer, MAX_LEN, receiverHost, receiverPort);
for(int i=0;i<999;i++)
{
num=0;
buffer= new byte[MAX_LEN];
logger.info("in attesa di ricevere...");
mySocket.receive(datagram);
message=new String(buffer);
message=message.trim();
num=Integer.parseInt(message);
sum=sum+num;
logger.info(""+sum);
message=""+sum;
buffer= new byte[MAX_LEN];
buffer= message.getBytes();
logger.info("invio la somma parziale");
mySocket.send(datagram);
}
mySocket.close();
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
}
dovrebbe ricevere un numero su una certa porta, poi restituire ad un ip : porta la somma parziale dei numeri ricevuti...
restituisce somme sballate..
qualcuno sa aiutarmi?
import java.net.*;
import java.util.logging.*;
import java.lang.*;
public class ServerSomma {
public static void main(String[] args) throws Exception{
Logger logger = Logger.getLogger("global");
//logger.setLevel(Level.OFF);
if (args.length != 3)
System.out.println("Need 3 parameter!");
else{
int myPort=Integer.parseInt(args[2]);
int sum=0, num;
String message;
final int MAX_LEN = 10;
try {
InetAddress receiverHost =InetAddress.getByName(args[0]);
int receiverPort = Integer.parseInt(args[1]);
logger.info("Creo il socket");
DatagramSocket mySocket =new DatagramSocket(myPort);
logger.info("Creo il datagram packet");
byte[] buffer = new byte[MAX_LEN];
DatagramPacket datagram=new DatagramPacket(buffer, MAX_LEN, receiverHost, receiverPort);
for(int i=0;i<999;i++)
{
num=0;
buffer= new byte[MAX_LEN];
logger.info("in attesa di ricevere...");
mySocket.receive(datagram);
message=new String(buffer);
message=message.trim();
num=Integer.parseInt(message);
sum=sum+num;
logger.info(""+sum);
message=""+sum;
buffer= new byte[MAX_LEN];
buffer= message.getBytes();
logger.info("invio la somma parziale");
mySocket.send(datagram);
}
mySocket.close();
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
}
dovrebbe ricevere un numero su una certa porta, poi restituire ad un ip : porta la somma parziale dei numeri ricevuti...
restituisce somme sballate..
qualcuno sa aiutarmi?