Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
968 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [ Unix Java ] socket - transfert limité à 256 octets ?!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Unix Java ] socket - transfert limité à 256 octets ?!!!

n°136300
proxi
Posté le 08-05-2002 à 14:04:25  profilanswer
 

Je ne parviens pas à transférer plus de 256 octets à travers mon jeu de sockets. Voici le code du serveur :
 
      ServerSocket server = new ServerSocket(port);
      //server.setSoTimeout(30000);
 
      while(true)
      {
        connection = server.accept();
 
        InputStream in = connection.getInputStream();
        int i, len=0;
        byte line[] = new byte[1024];
 
        do
        {
          i = in.read();
          if(i < 0) throw new IOException("Unexpected EOF from proxy" );
          if(len >= 1024) throw new Exception("ip line too long" );
System.out.write(i);
System.out.println("-----" + len);
          line[len] = (byte) i;
        }
        while(line[len++] != '\n';);
 
        ...
        ...
      }
 
Voici le code du client ...
 
    try
    {
      DataInputStream sysin = new DataInputStream(System.in);
      String msg = null;
      Socket connection = new Socket("toto",22000);
System.out.println(connection.getReceiveBufferSize
());
System.out.println(connection.getSendBufferSize())
;
 
      System.out.println("Enter line :" );
      msg = sysin.readLine();
      BufferedWriter out = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
      out.write(msg+"\r\n\r\n" );
      out.flush();
      while (true);
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
 
Quelqu'un peut m'aider ???
Merci.

mood
Publicité
Posté le 08-05-2002 à 14:04:25  profilanswer
 

n°136305
darklord
You're welcome
Posté le 08-05-2002 à 14:11:34  profilanswer
 

il est vraiment zarb ton code. C'est pas vraiment comme ca que ca fonctionne. C'est quoi le but de if machin > 1024?


---------------
Just because you feel good does not make you right
n°136306
proxi
Posté le 08-05-2002 à 14:15:23  profilanswer
 

DarkLord a écrit a écrit :

il est vraiment zarb ton code. C'est pas vraiment comme ca que ca fonctionne. C'est quoi le but de if machin > 1024?  




 
C juste que je peux pas accepter une chaine de plus de 1024, mais là maintenant c pas encore utile...

n°136307
darklord
You're welcome
Posté le 08-05-2002 à 14:19:02  profilanswer
 

et qu'est ce qui se passe lorsque tu transfères plus de 256 octets exactement?


---------------
Just because you feel good does not make you right
n°136311
proxi
Posté le 08-05-2002 à 14:29:51  profilanswer
 

si j'envois la chaine (de 260 caractères)
 
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
0123456789
 
Ca donne ...
 
789
 
Sinon si j'envois  
 
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
 
 
Ca donne ...
 
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789

n°136312
proxi
Posté le 08-05-2002 à 14:31:21  profilanswer
 

PS : J'ai viré la ligne System.out.println("-----" + len);

n°136316
darklord
You're welcome
Posté le 08-05-2002 à 14:39:22  profilanswer
 

tu supposes que 1 char = 1 bytes ou quoi?


---------------
Just because you feel good does not make you right
n°136322
proxi
Posté le 08-05-2002 à 14:42:15  profilanswer
 

oui, c faux ?

n°136324
darklord
You're welcome
Posté le 08-05-2002 à 14:48:52  profilanswer
 

bin globalement oui et ce n'est certainement pas une assertion classique. Bon je vais jeter un oeil à ton code qui me semble assez foireux
 
hold on


---------------
Just because you feel good does not make you right
n°136326
proxi
Posté le 08-05-2002 à 14:50:19  profilanswer
 

ok je te remercie...
 
je regarde aussi de mon côté.

mood
Publicité
Posté le 08-05-2002 à 14:50:19  profilanswer
 

n°136328
darklord
You're welcome
Posté le 08-05-2002 à 14:54:05  profilanswer
 

Pour le serveur:
 
ServerSocket server = new ServerSocket(port);
//server.setSoTimeout(30000);
while(true) {
  connection = server.accept();
  BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  String line = in.readLine();
  System.out.println("Received a new request: " + line);
  // Here you can manage line's length, etc.
  ...
}
 
 
Pour le client:
 
remplace out.write par out.writeln


---------------
Just because you feel good does not make you right
n°136342
proxi
Posté le 08-05-2002 à 15:06:31  profilanswer
 

ça donne pareil... marche toujours pas.
 
Sinon je ne vois pas de writeln dans BufferedWriter, j'ai essayé sans. C pareil.
 
Sinon je vais essayer avec un out.newline avant le flush ...

n°136344
proxi
Posté le 08-05-2002 à 15:09:44  profilanswer
 

pareil :-(
 
Au fait, ça donne la même chose avec telnet... c le code du serveur qui m'inquiète. Le client c t juste pour tester.

n°136355
benou
Posté le 08-05-2002 à 15:17:06  profilanswer
 

zarb ton problème. D'apres moi les 2 codes (dark et le tien) sont bons.
 
ca doit être un problème à la con ... t'as essayé de faire marcher ton prog sur une autre machine ? (sous windows par exemple)

n°136359
proxi
Posté le 08-05-2002 à 15:19:21  profilanswer
 

Ben figure toi que je viens d'essayer sous windows à l'instant... ça marche :-//

n°136365
benou
Posté le 08-05-2002 à 15:22:52  profilanswer
 

proxi a écrit a écrit :

Ben figure toi que je viens d'essayer sous windows à l'instant... ça marche :-//  




 
ouep c'est bien un problème à la con ! ;)
 
désolé, mais là je vais ps pouvoir t'aider ...

n°136372
proxi
Posté le 08-05-2002 à 15:27:23  profilanswer
 

je dois dire que ça me rassure d'un côté...  
@+ thx


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [ Unix Java ] socket - transfert limité à 256 octets ?!!!

 

Sujets relatifs
[java] peut etre con mais j aimerai comprendre[Delphi] Client/Serveur : gérer l'évenement "on error" du socket.
[java] afficher une page html à l'intérieur d'une applet[JAVA]probleme de transtypage de Object vers autre chose
[JAVA] Créer un jar exécutable[JAVA] Récuperation d'un entier avec interface graphique
Transformer un prog java en .exe ???Gestion de bases XML en Java : quels tools a utiliser ?.
Synchronized en Java servlets[JAVA] Création de JButtons dans une boucle
Plus de sujets relatifs à : [ Unix Java ] socket - transfert limité à 256 octets ?!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR