[socket]pb de connexion reseau sous xp

Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004 - 21 juil. 2004 à 17:20
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 22 juil. 2004 à 23:46
Salut,

J'ai fait une partie d'application qui permet de se connecter via TCP, le probleme est que lorsque je l'ai installé et lancé sous win XP professionel (je l'avais tester sous 2000 sans pb), il me fait planté mes connexion réseau, je ne peux plus înger personne sur le reseau.

J'utilise simplement des sockets avec des objetOutputStream et ObjectInputStream pour mes transfèrts de données.

quelqu'un a une question ou une explication.

merci

Frouf

3 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
21 juil. 2004 à 19:40
:big) Neodante :big)

Pas vraiment d'explication surtout que la techno 2000/XP est sensiblement la même ... est-ce que tu utilises les mêmes JDK ??? De toute manière cela ne dervait pas planter tes connexions réseaux ... mais je ne suis pas dans le programme pour le savoir ... avec du code ca parlerait surement plus !
@+

[Responsable www.neogamedev.com]
0
Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004
22 juil. 2004 à 09:18
En fait, je veux bien te montrer une partie du code mais en fait je viens d'essayer sur un autre pc qui est sous xp et ça marche sur celui là. Il ont pourtant le même JDK.

Voila le code pour tout ce qui est envoi du coté client:
public class Envoi extends Thread {

private Vector objectATransmettres;
private int aTransmettre;
private ObjectOutputStream objectOut;
private int nbDemandeNonresolues=0;
private static final int LIMITEDEMANDE=3;

public Envoi(ObjectOutputStream objectOutput){
objectOut=objectOutput;
objectATransmettres=new Vector();
aTransmettre=0;
}

public void run(){
while(true){
try {
sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
System.err.println(nbDemandeNonresolues);
if(aTransmettre>0){
try {
if(nbDemandeNonresolues<=LIMITEDEMANDE){
ObjectTransmis objectTemp=(ObjectTransmis)objectATransmettres.elementAt(0);
if(!objectTemp.getType().equals("envoiFichier")){
nbDemandeNonresolues++;
}
objectOut.writeObject(objectTemp);
objectOut.flush();
objectATransmettres.remove(0);
aTransmettre--;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

public synchronized void envoi(ObjectTransmis objectTransmis){
System.out.println("envoi: "+objectTransmis.getType());
aTransmettre++;
objectATransmettres.add(objectTransmis);
}

//type: 0 si decr, 1 si incr
public synchronized void decrNbDemande(){
System.out.println("modifValeur");
System.err.println("decremente");
nbDemandeNonresolues--;
System.err.println("nb Deamnde: "+nbDemandeNonresolues);
if (nbDemandeNonresolues<0){
nbDemandeNonresolues=0;
}
}
}


Voila le code pour tout ce qui est reception chz le client

package clientController;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Vector;

import clientView.InterfacePrincipale;

import partage.ObjectTransmis;

/**
 * @author severine1
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class Reception extends Thread {

private ObjectInputStream objectIn;
private InterfacePrincipale ip;

public Reception(ObjectInputStream objectInProv,InterfacePrincipale ipProv){
objectIn=objectInProv;
ip=ipProv;
}

public void run(){

try {
ObjectTransmis objectTransmis=null;
int i=0;
while(true){
System.out.println("Reception: "+i);
i++;
System.out.println("byte disponible: "+objectIn.available());
objectTransmis=(ObjectTransmis)objectIn.readObject();
System.out.println("Reception: "+objectTransmis.getType());
System.out.println("apquet recu");
String type=objectTransmis.getType();
if (type.equals("smq")){
System.err.println("reception su smq");
ip.getConnexion().getEnvoi().decrNbDemande();
System.out.println("reception du smq");
Vector smqServeur=(Vector)objectTransmis.getContenu();
MajSMQ majSMQ=new MajSMQ();
majSMQ.recupSMQIn(smqServeur);
}
else if(type.equals("structureSmq")){
System.err.println("reception structure du smq");
ip.getConnexion().getEnvoi().decrNbDemande();
System.out.println("reception de la structure du smq");
Vector smqServeur=(Vector)objectTransmis.getContenu();
MajSMQ majSMQ=new MajSMQ();
majSMQ.recupStructureSMQIn(smqServeur);
}
else if(type.equals("nomComptes")){
System.err.println("reception nomComptes");
ip.getConnexion().getEnvoi().decrNbDemande();
Vector nomComptes=(Vector)objectTransmis.getContenu();
GestionCompte gc=new GestionCompte();
gc.getNomCompteIn(nomComptes);
}

else if(type.equals("messages")){
//System.out.println("changement valeur nbdemande");
ip.getConnexion().getEnvoi().decrNbDemande();
MajMessages majMessages=new MajMessages(ip);
majMessages.recupMessageIn((Vector[])objectTransmis.getContenu());
}
else if(type.equals("fichierTelecharge")){
System.err.println("fichiertelecharger");
ip.getConnexion().getEnvoi().decrNbDemande();
MajSMQ majSMQ=new MajSMQ();
System.err.println("fichierTelechargé recu");
Vector newFichier=(Vector)objectTransmis.getContenu();
majSMQ.telechargerFichiersIn((String)newFichier.elementAt(0),(byte[])newFichier.elementAt(1),((Integer)newFichier.elementAt(2)).intValue());
}
else if(type.equals("erreur")){

}
}
}
catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

}


si ça te parle...

Frouf
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
22 juil. 2004 à 23:46
:big) Neodante :big)

OK je regarde ça demain ... là je prépare mon retour de vacances ...
@+

[Responsable www.neogamedev.com]
0
Rejoignez-nous