Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Socket et classe [ Archives / Au secours ] (Nakah)

dimanche 16 février 2003 à 00:51:23 | Socket et classe

Nakah

Voila je voudrais savoir s'il est possible d'envoyer et de recevoir autre chose que du texte avec l'utilisation des sockets. Je voudrais par exemple envoyer et recevoir une classe.

dimanche 16 février 2003 à 12:55:27 | Re : Socket et classe

JHelp

C'est tout à fait faisable. Ce principe s'appel la Sérialization.. En fait l'éméteur et le récepteur possédes tout deux le code de la classe, elle est transformer en texte coté éméteur, transmise via la socket, le texte reçu est transformer en une instance de la classe. Voilà pour le principe.
Pour le mettre en place, il te faut une classe dite Serializable, qui est partagée par l'émteur et le recepteur. Et ensuite l'envoyer via un ObjectOutputStream (java.io), et la lire via un ObjectInputStream (java.io).
Pour rendre une classe Serializable, il suffit de lui faire implémenter l'interface Serielizable (java.io) Pour cette interface, pas besoin de définir des méthodes supplémentaires.

Un exemple serait peut-être le bienvenue. Tout d'abord la classe des données, celle qui est envoyé via le Web.

import java.io.Serializable
import java.util.Vector;

public class Donnee implements Serializable
{
private int quantite;
private double prix;
private String nom;
private Vector descriptions;

//Constructeur sans paramétre nécessaire pour données les valeurs par défauts pour une classe Sérializable
public Donnee()
{
quantite = 0;
prix = 0;
nom="";
descriptions=new Vector();
}

//Autre constructeur
public Donnee(int quantite,double prix,String nom)
{
this.quantite = quantite;
this.prix = prix;
this.nom = nom;
descriptions=new Vector();
}

//Ajoute une description
public void ajouteDescription(String description)
{
descriptions.addElement(description);
}

public int getQuantite()
{
return qaantite;
}

//........
}


Bon je l'ai pas mise entiére, c'est juste un exemple.

Ensuite, pour transférer ta classe donnée, il faut creer un ObjectOutputStream, pour celà tu fais :

ObjectOutputStream oos=new ObjectOutputStream(socket.getOutputStream());

Puis le transfert :

oos.writeOdject(donnee);

Ou donnee est une instance de Donnee

Pour lire la a classe, il faut constriure un ObjectInputStream

ObjectInputStream ois=new ObjectInputStream(socket.getInputStream());

Et pour récuprée la donnée :

Donnee donnee=(Donnee)ois.readObject();


Bien entendu toute ces opértions de ctruction de lecteur ou d'écriveur de flux, et la lecture et l'ecriture, peuvent déclancher des IOException, danoc à capturer avec un try catch quelque part.

JHelp

lundi 17 février 2003 à 21:58:54 | Re : Socket et classe

Nakah

Je te remerci tu m'a sauvé !

mardi 18 février 2003 à 12:49:24 | Re : Socket et classe

djamel001

coucou nakah la truite ! :)


-------------------------------
Réponse au message :
-------------------------------

> Je te remerci tu m'a sauvé !
>

mardi 18 février 2003 à 12:50:47 | Re : Socket et classe

djamel001

et peut ton mettre du coté client et du coté serveur une classe identique sauf au niveau d'une méthode...ou alors ca doit etre la meme classe ???


-------------------------------
Réponse au message :
-------------------------------

> coucou nakah la truite ! :)
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je te remerci tu m'a sauvé !
> >
>

mardi 9 mars 2004 à 15:33:48 | Re : Socket et classe

smy

Mon programme ne marche pas, en faisant
Donnee donnee=(Donnee)ois.readObject();

Il me génère une ClassNotFoundException alors que j'ai copié l'exemple donné


mardi 9 mars 2004 à 15:35:06 | Re : Socket et classe

smy

Mon programme ne marche pas, en faisant
Donnee donnee=(Donnee)ois.readObject();

Il me génère une ClassNotFoundException alors que j'ai copié l'exemple donné


mardi 9 mars 2004 à 15:36:21 | Re : Socket et classe

smy

Mon programme ne marche pas, en faisant
Donnee donnee=(Donnee)ois.readObject();

Il me génère une ClassNotFoundException alors que j'ai copié l'exemple donné


mardi 9 mars 2004 à 15:36:37 | Re : Socket et classe

smy

Mon programme ne marche pas, en faisant
Donnee donnee=(Donnee)ois.readObject();

Il me génère une ClassNotFoundException alors que j'ai copié l'exemple donné


mardi 9 mars 2004 à 15:37:12 | Re : Socket et classe

smy

Mon programme ne marche pas, en faisant
Donnee donnee=(Donnee)ois.readObject();

Il me génère une ClassNotFoundException alors que j'ai copié l'exemple donné



1 2

Cette discussion est classé dans : envoyer, classe, socket, recevoir


Répondre à ce message

Sujets en rapport avec ce message

override de classe [ par desperad0 ] j'ai fait une copie d'une classe du jre, j'ai modifié son code(c'est la classe socket), et je voudrait que mon programme utilise ma classe socket plut Envoyer/recevoir valeurs avec un exécutable [ par orelien ] Bonjour,J'ai deux applications : l'une en Java et l'autre un exécutable windows.J'aimerais que l'exe et le java puisse se communiquer une valeur entre Envoyer une image par une socket [ par Sacavinasse ] Je fais un projet de capture d'image d'un ordi à un autre (le but est d'envoyer le max de capture d'image de l'ordi distant et de les afficher sur l'o [J2ME] Envoyer/recevoir/consulter SMS [ par JuJu ] Bonjour, J'ai comme projet de devoir envoyer et recevoir/consulter des sms avec J2ME sur un mobile Nokia. J'aimerais déja savoir si c'est possible et envoyer une video en socket [ par omar1271 ] slt tt le  monde !je ss entrain de developper un appli. clien/serveur   et je doie à ce titre  envoyer une video.mov qui est stocké sur le disque dur Comment envoyer un ResultSet et un ResultSetMetaData par RMI? [ par TomC ] Bonjour à tous, Je possède une classe composée d'un ResultSet et d'un ResultSetMetaData. Je souhaite l'envoyer depuis mon serveur à mon client en RMI. Java : lenteur avec Objet envoyer par Socket avec KeyEvent [ par nemata ] Bonsoir, je développe actuellement un Bomberman en java et en réseau 2 joueur, je peut actuellement envoyer un objet léger avec simplement la position recuperer une donnee d'une hasmap [ par xpol ] Bonjour,j'ai une hashmap dans une classe1, et je souhaiterais recuperer une donnee de cette hashmap dans une classe2. dans ma classe 1 j'ai une method editeur cellule jgraph [ par pseudo85 ] Salut,Je programme actuellement un diagramme de classe en utilisant JGraph. J'utilise pour cela des cellules contenant plusieurs jTextField (le nom de Socket [ par sistaroro ] Bonjour ,j'ai un petit souci. Je souhaite que le serveur puisse récupérer alternativement les éléments produits par le client1 et le client2.J'arrive


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,733 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.