1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
| public class MainServeurR {
public static void main( String[] args )
{
new serveurR().start();
}
}
///////////////////////////////////////////////
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.*;
import java.io.*;
import java.util.*;
import classes.de.base.CIndividu;
public class serveurR extends Thread{
final static int port= 10001;
private int intTailleDeLaPopulation = 50;
private int intTailleDuChromosome = 10;
private CPopulation P;
public void run() {
// Declaration des flux d'E/S
ObjectOutputStream sortie;
ObjectInputStream entree;
String tableau="";
tableau+=(""+this.P.DonnerUnIndividu(0).ConvertirEnChaine()+"\n");
try{
// Declaration et lancement de la socket serveur
ServerSocket socketServeur = new ServerSocket(port);
System.out.println(" Serveur en attente");
Socket socketClient = socketServeur.accept();
// Connexion des flux d'E/S
sortie = new ObjectOutputStream( socketClient.getOutputStream() );
sortie.flush();
entree = new ObjectInputStream( socketClient.getInputStream() );
String message = " ";
// Echanges de données avec la socket client
sortie.writeObject(tableau);
message = (String) entree.readObject();
System.out.println(message + "\n");
// fermeture des flux
entree.close();
sortie.close();
} catch( Exception e) {
e.printStackTrace();
}
}
}
//////////////////////////////////////////////////
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class clientR{
final static int port= 10001;
public static void main( String[] args ) {
// Declaration des flux d'E/S
ObjectOutputStream sortie;
ObjectInputStream entree;
// Declaration de la socket client
Socket socket;
try{
// connexion au serveur
InetAddress serveur = InetAddress.getByName("localhost");
socket = new Socket( serveur, port);
// Connexion des flux d'E/S
sortie = new ObjectOutputStream( socket.getOutputStream() );
sortie.flush();
entree = new ObjectInputStream( socket.getInputStream() );
String message = " ";
// echange de données avec le serveur
int [] chaine = (int [] ) entree.readObject();
if ( chaine.length ==5 ) {
System.out.println("Connexion reussie! \n");
int s=0;
for (int i=0; i<chaine.length; i++) {
s = s + chaine[i];
System.out.println(chaine[i] );
}
message = String.valueOf(s);
sortie.writeObject( message );
sortie.flush();
}
// fermeture des flux d'E/S
entree.close();
sortie.close();
socket.close();
} catch( Exception e) {
e.printStackTrace();
}
}
}
///////////////////////
package classes.de.base;
import java.util.*;
import java.io.*;
public class CIndividu implements Comparable,Serializable {
CChromosome chromosome;
double Adaptation;
/////////////////////////////////////////////////////////////////
public CIndividu()
{
chromosome = new CChromosome();
this.evaluer();
// this.Adaptation = this.chromosome.Donner_le_Nombre_De_Un()/this.chromosome.Donner_La_Taille_Du_Chromosome();
}
/////////////////////////////////////////////////////////////////////////
public CIndividu(int Taille)
{
this.chromosome = new CChromosome(Taille);
this.evaluer();
}
////////////////////////////////////////////////////////
public CIndividu(CChromosome chromosome)
{
this.chromosome = chromosome;
this.evaluer();
}
////////////////////////////////////////////////////////////////
public CChromosome Donner_Chromosome()
{
return this.chromosome;
}
public void evaluer()
{
this.Adaptation = (double)this.chromosome.Donner_le_Nombre_De_Un()/(double)this.chromosome.Donner_La_Taille_Du_Chromosome();
//this.Adaptation = this.chromosome.Donner_le_Nombre_De_Un();///this.chromosome.Donner_La_Taille_Du_Chromosome();
}
//////////////////////////////////////////////////////////////////////////
public double DonnerAdaptation()
{
return this.Adaptation;
}
///////////////////////////////////////////////////////////////
public int DonnerTailleChromosome()
{
return this.chromosome.Donner_La_Taille_Du_Chromosome();
}
///////////////////////////////////////////////////////////////////////
public String ConvertirEnChaine()
{
String buf = "";
for(int i = 0; i < this.DonnerTailleChromosome(); i++ )
buf += this.DonnerGene(i).donnerAllele();
return buf;
}
} |
Partager