Aide serveurTCP en java

kaenef_irt Messages postés 124 Statut Membre -  
kaenef_irt Messages postés 124 Statut Membre -
Bonjour,
je veux ecrire un programme serveur qui puisse communique avec des programmes clients mais voilà quand j'execute mon code avec eclipse(il n'y a pas d'erreurs) il affiche le message suivant:

Impossible de lier la socket Cannot assign requested address: JVM_Bind
java.net.BindException: Cannot assign requested address: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at serveur_TCP.main(serveur_TCP.java:16)

j'aimerais vraiment savoir ce qui ne va pas

voici mon code:

import java.io.*;
import java.net.*;
public class serveur_TCP {
public static void main(String[] args)
{
Socket socEs=null; // Socket communication
InetAddress addr=null;
BufferedReader fin=null;
byte[] octets={10,0,0,17};
PrintWriter fout;
try {

addr=InetAddress.getByAddress(octets);
ServerSocket socSer=new ServerSocket(20000,20,addr);

while (true)
{
System.out.println("J'attend une connexion :");
socEs=socSer.accept();
System.out.println("J'ai reçu une connexion");// A reçu une connexion
fin=new BufferedReader(new InputStreamReader(socEs.getInputStream()));
fout = new PrintWriter(socEs.getOutputStream());
System.out.println("Voici les données provenant du client:");
while (fin.ready()){
System.out.println(fin.readLine());
}
fin.close();
fout.println("j'ai re‡ue votre requˆte");
fout.flush();
fout.close();
socEs.close();
}
}
catch (Exception ex)
{
System.out.println("Impossible de lier la socket "+ex.getMessage());
ex.printStackTrace();
}
}
}
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. kaenef_irt Messages postés 124 Statut Membre 2
     
    j'ai pu resoudre mon prbleme mais cette fois je suis confronté à un autre probleme mon serveur et mon client n'arrive pas à communiquer pourtant il n'y a apparamment pas d'erreur;je ne sais pas si le pb se trouve au niveau des adresses je les ai changé mais rien n'y fait que faut il ajouter ou supprimer?

    voici les codes

    SERVEUR:

    import java.io.*;
    import java.net.*;
    public class serveurTcp{
    public static void main(String[] args)
    {
    //PrintWriter fout;
    byte[]octets=new byte[4];
    octets[0]=101;
    octets[1]=0;
    octets[2]=0;
    octets[3]=1;
    try
    {
    InetAddress addr=InetAddress.getByAddress(octets);
    ServerSocket socSer=new ServerSocket(20000,20,addr);
    Socket socEs=null;
    BufferedReader fin;
    while(true)
    {
    System.out.println("je suis en attente d'une connexion");
    socEs=socSer.accept();
    System.out.println("J'ai reçu une connexion");
    socEs.setSoTimeout(0);

    fin=new BufferedReader(new InputStreamReader(socEs.getInputStream()));
    fout = new PrintWriter(socEs.getOutputStream());
    System.out.println("Voici les données provenant du client:");
    while(fin.ready()){
    System.out.println(fin.readLine());}

    fin.close();
    fout.println("j'ai reçu votre requete");
    fout.flush();
    fout.close();
    socEs.close();

    }

    }
    catch(Exception en)
    {}

    }
    }

    CLIENT:

    import java.io.*;
    import java.net.*;
    public class ClientTcp{
    public static void main(String[] args)
    {

    byte[]octets=new byte[4];
    octets[0]=101;
    octets[1]=0;
    octets[2]=0;
    octets[3]=1;
    byte[]oct=new byte[4];
    oct[0]=10;
    oct[1]=0;
    oct[2]=0;
    oct[3]=33;
    try
    {
    InetAddress addr=InetAddress.getByAddress(octets);
    InetAddress ad=InetAddress.getByAddress(oct);
    Socket soc=new Socket(addr,20000,ad,10000);

    PrintWriter fout=new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));
    fout.println("etes vs connecté?");
    fout.flush();
    soc.close();

    }
    catch(Exception en)
    {}

    }
    }
    0