CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

probleme avec les sockets

_marat_
_marat_
Niveau 5
22 mars 2006 à 17:39:31

import java.net.*;
import java.io.*;

public class Client extends Thread{
Socket socket;
BufferedReader in;
PrintWriter out;

public Client(){
try{
socket=new Socket("localhost",1234);
out=new PrintWriter(socket.getOutputStream(),true);
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch(IOException e){
System.out.println("erreur dans le constructeur du client");
}
this.start();
}

public void run(){
try{
String message=in.readLine();
System.out.println(message);

socket.close();
}
catch(IOException e){
System.out.println("erreur dans la methode run du client");
}
}
public static void main(String args[]){
new Client();
}
}

    • ***********************************************
    • ***************************

import java.net.*;
import java.io.*;

public class Server extends Thread{
ServerSocket server=null;
Socket socket=null;

public Server(){
try{
server=new ServerSocket(1234);
System.out.println("Serveur en attente...");

}
catch(IOException e){
System.out.println("erreur dans le constructeur du serveur");
}
this.start();
}

public void run(){
try{
while(true){
socket=server.accept();
System.out.println("Client connecte...");

new Connexion(socket);

System.out.println("Fin...");

socket.close();
}
}
catch(IOException e){
System.out.println("erreur dans la methode run du serveur");
}
}

public static void main(String args[]){
new Server();
}
}

    • ***********************************************
    • ********************

import java.net.*;
import java.io.*;

public class Connexion extends Thread{
Socket socket;
BufferedReader in;
PrintWriter out;

public Connexion(Socket socket){
try{
this.socket=socket;

in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(socket.getOutputStream());
}
catch(IOException e){
System.out.println("erreur dans le constructeur de Connexion");
}
this.start();
}

public void run(){
String message=("Mon message");
out.println(message);
out.flush();
}
}

voila je comprend pas pourquoi quand j´éxecute ce programme , j´ai null qui s´affiche alors que théoriquement je devrais avoir Mon message d´affiché

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
22 mars 2006 à 17:51:20

Oh du java... :-(

dnob700
dnob700
Niveau 10
22 mars 2006 à 18:35:38

je ne connais pas trop le java (même pas du tout pour être précis), mais es-tu sur que lorsque tu crée le socket dans ton client ça appelle automatiquement la méthode "connect" ? (sinon, tu doit l´appeler toi même avant de lire le socket).

D´autre part, quand tu lis ton socket, es-tu sur que le message est déjà là ? (la lecture est bloqquante ?) ou est-ce que tu ne devrais pas attendre un événements qui te dira qu´un message est arrivé ?

Disons que c´est juste des pistes de recherche.

godrik
godrik
Niveau 30
22 mars 2006 à 19:55:30

outre que tonmessage n´est pas tres clair,
(j´aurais aimé avoir le lo résultat complet)

tu ouvre le socket coté serveur et tu le ferme immédiatement apres:
socket=server.accept();
System.out.println("Client connecte...");

new Connexion(socket);

System.out.println("Fin...");

socket.close();

donc ca ne m´étonne pas que ca fasse une erreur.
dans ta gestion d´erreur pense a faire un System.printStackTrace (); ca aide bien a débuggé

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment