|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 55
|
[JAVA]Help!
Dovrei sviluppare un programma in Java che mi permetta di eseguire queste operazioni;chi mi puo' aiutare?
Client: invia al server un numero intero random compreso tra 1 e 100, aspetta una risposta e la stampa Server concorrente: aspetta 2 client e poi calcola il max dei valori ricevuti dai 2 client. Quindi stampa a video i valori ricevuti e il vincitore. In fine manda al client vincitore la stringa "Hai vinto!" e allo sconfitto la stringa "Hai perso!". GRAZIE A TUTTI!! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 92
|
un attimo.. il tempo di scriverti il codice e te lo posto!
Ultima modifica di TempestaT400 : 18-09-2006 alle 01:23. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 55
|
grazie mille!!:-)
Allora resto in attesa.. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 92
|
Ma lo devi fare funzionare su locale oppure devi simulare una conv con un server qualsiasi.. lo vorrei sapere per gli indirizzi e le porte!!!
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 92
|
L'ho fatto per il funzionamento in locale.!.
Ti posto le varie classi ed anche la classe test... ------------------------------------------------------------------------- CLASSE:-----> CLIENT ------------------------------------------------------------------------- Codice:
import java.io.*;
import java.net.*;
public class Client extends Thread{
int port, receivePort;
InetAddress addr;
Socket socket;
BufferedReader in = null;
PrintWriter out = null;
int id;
public Client(int id, InetAddress serverAddr, int serverPort, int receivePort){
this.id = id;
this.addr = serverAddr;
this.port= serverPort;
this.receivePort = receivePort;
}
public void run(){
inviaNumero();
aspettaResponso();
}
private void inviaNumero(){
try{
int val = (int)(Math.random()*100)+1;
socket = new Socket(addr, port);
OutputStreamWriter osw = new OutputStreamWriter(socket.getOutputStream());
out = new PrintWriter(new BufferedWriter(osw),true);
out.println(val);
socket.close();
}catch(Exception e){}
}
private void aspettaResponso(){
try{
ServerSocket server = new ServerSocket(receivePort);
Socket client = server.accept();
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String line = in.readLine();
System.out.println("client:"+id+" -> "+line);
in.close();
server.close();
}catch(Exception e){}
}
}
CLASSE: --> SERVER ------------------------------------------------------------------------- Codice:
import java.io.*;
import java.net.*;
public class Server extends Thread{
private BufferedReader in;
private PrintWriter out;
private int port, clientPort;
private Integer [] dati = new Integer[2];
private InetAddress [] clientIP = new InetAddress[2];
public Server(int port, int clientPort){
this.clientPort = clientPort;
this.port = port;
}
public void run(){
aspettaValori();
inviaRisultati();
System.out.println("Server inattivo");
}
private void aspettaValori(){
try{
ServerSocket server = new ServerSocket(port);
System.out.println("Server in attesa!");
for(int i = 0; i<dati.length; i++){
Socket client = server.accept();
System.out.println("accettata conn");
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String line = in.readLine();
dati[i] = new Integer(line);
clientIP[i] = client.getInetAddress();
System.out.println("il client: "+clientIP[i]+" ha inviato il valore:"+dati[i]);
}
}catch(Exception e){}
}
private void inviaRisultati(){
try{
String mess [] = new String [2];
if(dati[0].intValue()>dati[1].intValue()){
mess[0] = "Hai vinto";
mess[1] = "Hai perso";
}
else{
mess[0] = "Hai perso";
mess[1] = "Hai vinto";
}
Socket s = new Socket(clientIP[0], clientPort);
out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
out.println("Hai vinto");
out.close();
s.close();
s = new Socket(clientIP[1], clientPort);
out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
out.println("Hai perso");
out.close();
s.close();
}catch(Exception e){}
}
}
CLASSE TEST ------------------------------------------------------------------------- Codice:
import java.net.*;
public class Test {
public static void main(String [] args){
try{
InetAddress local = InetAddress.getByName("127.0.0.1");
new Thread(new Server(3000, 4000)).start();
new Thread(new Client(1, local, 3000, 4000)).start();
new Thread(new Client(2, local, 3000, 4000)).start();
}catch(Exception e){}
}
}
Spero di esserti stato d'aiuto! L'ho fatto in poco tempo e quindi il codice non è tanto ottimizzato! Nel caso hai qualche problema contattami.. Bye bye Ultima modifica di TempestaT400 : 18-09-2006 alle 05:00. |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 55
|
GRRRRRRRRRRRRAZIE MILLEEEEEEE!!!!!!!!!!!!:d
Gentilissimo!!!!!!!! In caso di problemi ti faccio sapere... A presto Ciao!! |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 92
|
Figurati.. non mi è costato niente!!!
Ciao ciao!
__________________
L'unico computer sicuro è un computer spento!!! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:27.


















